Mer

Python geospatial utviklingsfeil


Jeg jobber med noen eksempler i boken Python Geospatial Development av Erik Westra.

På side 439, om å sette opp en flisekartserver, gir han følgende kode for å beregne en avgrensningsboks basert på en senterplassering og et zoomnivå:

TILE_WIDTH = 256 TILE_HEIGHT = 256 x_extent = _unitsPerPixel (zoomLevel) * TILE_WIDTH y_extent = _unitsPerPixel (zoomLevel) * TILE_HEIGHT min_lange = x0_xt_lengde_min_lengde_linje_lengde_lengte ): returner 0.703125/matematikkpow (2, zoomLevel)

Ingen steder angir han hvaxogyenheter forventes å være. Jeg antok lat lange koorder (samme som kart), men da fungerer ikke beregningene ovenfor.

Anta for eksempel at jeg harx = 50,0ogy = -2,09og et zoomnivå på 5.

For min_lat vil jeg da ha omtrent:

min_lat = -2,09 * 5,63 - 90,0

Som kommer til å gi mindre enn -90, grensen for kartet vårt ...?!?

Hver gang du passerer en negativ lat/lang koordinat, faller dette ned ...

Akkurat hvilke x/y -koordinater som forventes her?


Verdiene forxogyi dette tilfellet er sannsynligvis bare indekser for et X-Y-Z tilemap. Indeksene for en TMS-tjeneste er enhetsløse, de teller ganske enkelt antall fliser fra øverste venstre hjørne.

I ditt eksempel,_unitsPerPixelfunksjon returnerer skalaen til pikslene for det angitte zoomnivået. Verdien er bredden og høyden på en piksel i enhetene i projeksjonen (som her ser ut til å være lat/lon). Når multiplisert medTILE_WIDTH, får du skalaen til en flis i enhetene i koordinatsystemet du jobber med.

Med dette, verdienx * x_extent - 180(hvorxer flisindeksen) gir deg en lang verdi minus "offset" på -180 grader. Forskyvningen er nødvendig fordi du begynner å telle fra venstre til høyre. Så hvis indeksenxer null, er du på venstre kant av kartet ogmin_langeverdien er -180. Så verken x eller y skal anta en negativ verdi.

Tile Map Servers er vanligvis bygget for bruk på nettet, der biblioteket (for eksempel OpenLayers eller Leaflet) ber om en flis som bare bruker xyz -flisindeksen, og ikke noen romlig spørring. For ytterligere lesing om dette, se

http://en.wikipedia.org/wiki/Tiled_web_map

Her er en fin visualisering av hvordan flisindekser fungerer for google maps (merk at det også finnes andre definisjoner)

http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/


1.1.1 Behovet for GIS -automatisering

Et geografisk informasjonssystem (GIS) kan manipulere og analysere romlige datasett med det formål å løse geografiske problemer. GIS -analytikere utfører alle slags operasjoner på data for å gjøre det nyttig for å løse et fokusert problem. Dette inkluderer klipping, reprosjektering, buffering, sammenslåing, mosaikk, ekstrahering av undersett av dataene og hundrevis av andre operasjoner. I ArcGIS -programvaren som ble brukt i dette kurset, er disse operasjonene kjent som geoprosessering og de utføres ved hjelp av verktøy.

Vellykket GIS -analyse krever at du velger de mest passende verktøyene for å operere dataene dine. ArcGIS bruker en verktøykasse -metafor for å organisere sin pakke med verktøy. Du velger verktøyene du trenger og kjører dem i riktig rekkefølge for å lage det ferdige produktet.

Anta at du er ansvarlig for å velge nettsteder for en kjederestaurant. Du kan bruke ett verktøy for å velge landpakker langs en hovedgade, et annet verktøy for å velge pakker som ikke er mindre enn 0,25 dekar og andre verktøy for andre utvalgskriterier. Hvis denne utvelgelsesprosessen var begrenset til et lite område, ville det sannsynligvis være fornuftig å utføre arbeidet manuelt.

La oss imidlertid anta at du er ansvarlig for å utføre den samme analysen for flere områder rundt om i landet. Fordi dette scenariet innebærer å kjøre den samme sekvensen av verktøy for flere områder, er det et som egner seg godt til automatisering. Det er flere store fordeler med å automatisere oppgaver som dette:

  • Automatisering skaper arbeid lettere. Når du har automatisert en prosess, trenger du ikke å legge ned så mye innsats for å huske hvilke verktøy du skal bruke eller riktig rekkefølge de skal kjøres i.
  • Automatisering skaper arbeid raskere. En datamaskin kan åpne og kjøre verktøy i rekkefølge mye raskere enn du kan utføre den samme oppgaven ved å peke og klikke.
  • Automatisering skaper arbeid mer nøyaktig. Hver gang du utfører en manuell oppgave på en datamaskin, er det en sjanse for feil. Sjansen multipliserer med antall og kompleksitet i trinnene i analysen din, samt tretthet som oppstår ved å gjenta oppgaven mange ganger. I kontrast, når en automatisk oppgave er konfigurert, kan en datamaskin stole på å utføre den samme sekvensen av trinn hver gang for et potensielt uendelig antall sykluser.

ArcGIS -plattformen gir flere måter for brukerne å automatisere sine geoprosesseringsoppgaver. Disse alternativene varierer i mengden ferdigheter som kreves for å produsere den automatiserte løsningen og i de forskjellige scenariene som hver kan løse. Teksten nedenfor berører kort disse automatiseringsalternativene, for å kreve minst kodingsevne til mest.

Det første alternativet er å konstruere en modell ved hjelp av ModelBuilder. ModelBuilder er et interaktivt program som lar brukeren "kjede" verktøy sammen, ved å bruke utdataene fra ett verktøy som input i et annet. Den kanskje mest attraktive egenskapen til ModelBuilder er at brukere kan automatisere ganske komplekse GIS -arbeidsflyter uten behov for programmering. Du vil lære å bruke ModelBuilder tidlig i dette kurset.

Noen automatiseringsoppgaver krever større fleksibilitet enn ModelBuilder tilbyr, og for disse scenariene anbefales det at du skriver korte dataprogrammer eller skript. Hoveddelen av dette kurset er opptatt av manusskriving.

Et skript utfører vanligvis en sekvensiell prosedyre med trinn. I et skript kan du kjøre GIS -verktøy individuelt eller kjede dem sammen. Du kan sette inn betinget logikk i skriptet for å håndtere saker der forskjellige verktøy bør kjøres avhengig av utdataene fra den forrige operasjonen. Du kan også inkludere iterasjon eller sløyfer i et skript for å gjenta en enkelt handling så mange ganger som nødvendig for å utføre en oppgave.

Det er spesielle skriptspråk for å skrive skript, inkludert Python, JScript og Perl. Ofte har disse språkene mer grunnleggende syntaks og er lettere å lære enn andre språk som C, Java eller Visual Basic.

Selv om ArcGIS støtter forskjellige skriptspråk for å arbeide med verktøyene sine, understreker Esri Python i dokumentasjonen og inkluderer Python med ArcGIS Desktop og Pro -installasjoner. I dette kurset vil vi jobbe strengt med Python av denne grunn, så vel som det faktum at Python kan brukes til mange andre fil- og datamanipuleringsoppgaver utenfor ArcGIS. Du lærer det grunnleggende om Python -språket, hvordan du skriver et skript og hvordan du manipulerer og analyserer GIS -data ved hjelp av skript. Til slutt vil du bruke din nye Python -kunnskap til et sluttprosjekt, der du skriver et skript du selv velger, som du kan bruke direkte på arbeidet ditt.

Et mer nylig utviklet automatiseringsalternativ tilgjengelig på ArcGIS -plattformen er ArcGIS API (Application Programming Interface) for Python. Dette er et miljø der Python-skripting er bedre integrert med Esris sky- og serverbaserte teknologier (ArcGIS Online, Portal for ArcGIS, ArcGIS Enterprise). Kode skrevet for å samhandle med Python API skrives ofte i et "notatbok" -miljø, for eksempel Jupyter Notebook. I et bærbart miljø kan koden utføres trinnvis med mellomliggende resultater vist mellom Python -setningene. Bruken av Python API i et Jupyter Notebook -miljø er et tema i vår Advanced Python -klasse, GEOG 489.

For geoprosesseringsoppgaver som krever støtte for brukerinteraksjon med kartet eller andre UI -elementer, tilbyr ArcGIS Pro SDK (Software Development Kit) muligheten til å legge til tilpassede verktøy i Pro -grensesnittet. Pro SDK krever programmering i .NET -rammeverket ved hjelp av et .NET -språk som Visual Basic .NET eller C#. Arbeid med denne SDKs objektmodell gir større fleksibilitet når det gjelder hva som kan bygges i forhold til å skrive Python -skript rundt deres ramme for geoprosessering. Avveiningen er et høyere kompleksitetsnivå involvert i kodingen.

Endelig kan utviklere som ønsker å lage sine egne tilpassede GIS-applikasjoner, vanligvis fokusert på å levere mye smalere funksjonalitet enn ArcGIS Pro-en som passer alle, utvikle apper ved hjelp av ArcGIS Runtime SDK-er. Runtime SDK -er gjør det mulig å skrive apper for Windows, Mac eller Linux stasjonære maskiner, så vel som for iOS- og Android -mobilenheter, som igjen innebærer en større innsats enn ditt typiske Python -geoprosesseringsskript.

Denne første leksjonen vil introdusere deg for begreper i både modellbygging og manusskriving. Vi starter med å bare bli kjent med hvordan verktøy kjører i ArcGIS og hvordan du kan bruke disse verktøyene i ModelBuilder -grensesnittet. Deretter vil vi dekke noen av grunnleggende om Python og se hvordan verktøyene kan kjøres i skript.


Python geospatial utvikling

Denne boken er for erfarne Python-utviklere som ønsker å lære om geospatiale konsepter, innhente og jobbe med geospatiale data, løse romlige problemer og bygge sofistikerte kartbaserte applikasjoner ved hjelp av Python.

  • Få tilgang til, manipuler og vis geospatial data fra Python -programmene dine
  • Mestre de geospatiale kjernekonseptene plassering, avstand, enheter, anslag og datums
  • Les og skriv geografiske data i både vektor- og rasterformat
  • Utfør komplekse, virkelige geospatiale beregninger ved hjelp av Python
  • Lagre og få tilgang til geografisk informasjon i en database
  • Bruk punkter, linjer og polygoner i Python -programmene dine
  • Konverter geospatiale data til attraktive kart ved hjelp av Python-baserte verktøy
  • Bygg komplette nettbaserte kartprogrammer ved hjelp av Python

Geospatial utvikling knytter dataene dine til steder på jordens overflate. Å skrive geospatiale programmer innebærer oppgaver som å gruppere data etter sted, lagre og analysere store mengder romlig informasjon, utføre komplekse geospatiale beregninger og tegne fargerike interaktive kart. For å gjøre dette godt trenger du passende verktøy og teknikker, samt en grundig forståelse av geospatiale konsepter som kartprojeksjoner, datums og koordinatsystemer.

Denne boken gir en oversikt over de store geospatiale konseptene, datakildene og verktøysettene. Det starter med å vise deg hvordan du lagrer og får tilgang til romlige data ved hjelp av Python, hvordan du utfører en rekke romlige beregninger og hvordan du lagrer romlige data i en database. Videre lærer boken deg hvordan du bygger ditt eget glatte kartgrensesnitt i en webapplikasjon, og avslutter med detaljert konstruksjon av et geospatial dataredigeringsprogram ved hjelp av GeoDjango -rammeverket.

Ved slutten av denne boken vil du trygt kunne bruke Python til å skrive dine egne geospatiale applikasjoner, alt fra raske, engangsprogrammer til sofistikerte nettbaserte applikasjoner ved hjelp av kart og andre geospatiale data.

Denne boken er et omfattende kurs i geospatial utvikling. Konseptene du trenger å vite, presenteres på en praktisk måte med eksempelkode for å hjelpe deg med å løse virkelige problemer med en gang. Større programmer bygges opp trinnvis mens du veileder deg gjennom prosessen med å bygge dine egne sofistikerte kartprogrammer.


  • Lag et interaktivt kart
  • Legg til lokale datasett (f.eks. GeoJSON, JSON, Shapefile) til kartet enten gjennom kode eller GUI
  • Legg pandaer DataFrames og GeoPandas GeoDataFrames til kartet
  • Bruk en widget for rask visning av filtrerte resultater av en pd.DataFrame
  • Filtrer alle ikke-TileLayer på kartet etter en unik verdi i et felt/kolonne
  • Behandle SafeGraph -data og pakk ut json -kolonner i en eksisterende eller en ny DataFrame

Denne pakken ble opprettet med Cookiecutter og prosjektmalen giswqs/pypackage.


Gratis nedlasting av Python for GIS -programmering

Python er tilgjengelig for alle større operativsystemer: Windows, Linux/Unix, OS/2, Mac, Amiga, blant andre. Det er til og med versjoner som kjører på .NET, den virtuelle Java -maskinen og mobiltelefoner fra Nokia Series 60. Du vil gjerne vite at den samme kildekoden vil kjøre uendret for alle implementeringer.

Favorittsystemet ditt er ikke oppført her? Det kan fortsatt støtte Python hvis det er en C -kompilator for det. Spør rundt på nyheter: comp.lang.python - eller bare prøv å kompilere Python selv. Python er vennlig. og lett å lære

Nyhetsgruppen i Python er kjent som en av de vennligste rundt. Den ivrige utvikleren og brukermiljøet opprettholder en wiki, arrangerer internasjonale og lokale konferanser, kjører utviklingsspurter og bidrar til online kodelagre.

Python kommer også med komplett dokumentasjon, både integrert i språket og som separate websider. Online opplæringsprogrammer retter seg både mot den erfarne programmereren og nykommeren. Alle er designet for å gjøre deg produktiv raskt. Tilgjengeligheten av førsteklasses bøker fullfører læringspakken. Python er åpen

Python -implementeringen er under en åpen kildekode -lisens som gjør den fritt brukbar og distribuerbar, selv for kommersiell bruk. Python -lisensen administreres av Python Software Foundation.

Michael R. Meuser
Dataforskning og GIS -spesialist

MapCruzin.com er et uavhengig firma som spesialiserer seg på GIS -prosjektutvikling og dataforskning. Vi opprettet de første USA -baserte interaktive toksiske kjemiske anleggskartene på internett i 1996, og vi har vært på nett siden. Lær mer om oss og våre tjenester.

Har du et prosjekt i tankene? Hvis du har data, GIS -prosjekt eller tilpassede formfilbehov kontakt Mike.

Finn: Kart, Shapefiles, GIS -programvare og mer

MapCruzin -blogg for oppdateringer, spørsmål og svar
Bloggoppdateringer


Karriere og lønn

Din karriere

Saskatchewan Polytechnic har en god merittliste når det gjelder å få studenter i jobb: 80% av GIS -studenter jobber innen feltet innen seks måneder etter eksamen. De jobber som GIS -kartleggingsteknikere, GIS -spesialister, kartleggingskartografer, GPS -operatører, dataanalytikere eller fjernmålinganalytikere. Med din spesialiserte opplæring i å bruke GIS på ressursforvaltning, kan du utforske jobbmuligheter med et stort utvalg potensielle arbeidsgivere, inkludert naturressursbaserte næringer, First Nations-næringer, konsulentfirmaer, miljøbyråer, offentlige avdelinger og kommunale byråer.


Python Geospatial Development Error - Geografiske informasjonssystemer

Under utvikling

Dette depotet legger en vei for å ta noen uten GIS -erfaring til en dyktig GIS -utvikler. Seksjonene er organisert etter ferdighetsnivå og skal videreføres sekvensielt. Dette var sterkt inspirert av Open Source Society University.

Ressurser kommer hovedsakelig fra svært effektive og gratis kurs, samt blogginnlegg og opplæringsprogrammer. Det er en blanding av proprietære (ESRI) og open source-materialer.

Vær så snill å bidra og rette opp eventuelle feil som jeg uunngåelig vil gjøre.

Hvis du har tatt en introduksjon til GIS -kurs eller brukt GIS på arbeidsplassen i mer enn noen få måneder, hopper du over denne delen. Ellers, la oss gå gjennom noen materialer for å sikre at vi har en grunnleggende forståelse av hva GIS er, hva vanlige GIS -oppgaver er, og hvilke GIS -verktøy som finnes der ute.

Velg en av skrivebordsprogrammene nedenfor og kjør gjennom det tilhørende kurset for å komme opp i fart. Dette vil ta omtrent 40 timer og vil gi deg et godt grunnlag i GIS.

ArcMap og ArcPro er proprietær stasjonær programvare for å utføre GIS -analyse distribuert av ESRI. Disse er de mest brukte i bransjen, og å lære dem er det sikreste ved å dyppe føttene i bransjen. Bli kjent med ArcPro har en gratis ArcPro-lisens på ett år og er vel verdt pengene hvis du er seriøs om å gå inn på feltet. Hvis du tar en introduksjon til GIS -kurset gjennom et høyskole, er sjansen stor for at du vil gå gjennom denne boken som et flertall av kursarbeidet ditt.

Den mest brukte desktop -programvaren med åpen kildekode. Det er gratis å laste ned og har et bredt utvalg av plugins som lar deg gjøre omtrent alt med GIS.

Kurs (Velg ett) Vanskelighet GIS -programvare
Coursera GIS -spesialisering Lett ArcPro
Bli kjent med ArcPro ($ 40) Lett ArcPro
Offisiell opplæring i QGIS Lett QGIS

Lær det grunnleggende om programmering. Hvor mye du liker et av disse kursene kan være en god indikator på din suksess med programmering.

Kurs (Velg ett) Vanskelighet Språk
Introduksjon til datavitenskap og programmering ved hjelp av Python Medium Python
CS50: Introduksjon til informatikk Hard C, PHP, JavaScript, SQL, CSS og HTML

Dataanalyse med Python

Lær hvordan du bruker populære dataanalysebiblioteker i Python, for eksempel Numpy og Pandas. Jeg lister opp ganske mange betalte alternativer her fordi de er av meget høy kvalitet og er interaktive.

Ressurs (velg en) Vanskelighet
Geo Python Medium
Python Data Science Handbook Medium
Python for dataanalyse ($ 28) Medium
Dataquest ($ 23 - $ 50 / måned) Medium
Data Camp ($ 25 - $ 30 / måned) Medium
Brandon Rhoades Pandas Tutorial Medium

GIS -programmering med Python

Lær hvordan du skriver skript for å utføre GIS -analyser og automatisere repetitive oppgaver med Python.

Kurs (Velg ett) Vanskelighet GIS -programvare
GEOG 485: GIS -programmering og programvareutvikling Medium ArcGIS / ArcPy
Automatisering av GIS -prosesser Medium GDAL, OGR, GeoPandas, Shapely, QGIS

Anbefalte tilleggskurs

Lær hvordan du søker etter data, lager tabeller og visninger og utfører dataanalyse med databaser.

Kurs (Velg ett) Vanskelighet Databasemotor
SQL Zoo Medium SQL Server, Oracle, MySQL, DB2 og PostgreSQL
Stanford - Introduksjon til databaser Hard Ukjent
CS145: Datahåndtering og datasystemer Hard Google BigQuery

Lær hvordan du lagrer GIS -data og manipulerer dem i en database.

Kurs (Velg ett) Vanskelighet Databasemotor
GEOG 868 - Spatial Database Management Medium PostgreSQL / PostGIS
Offisiell - Introduksjon til PostGIS Medium PostgreSQL / PostGIS
CS145: Datahåndtering og datasystemer Hard Google BigQuery

Lær hvordan du administrerer prosjekter ved hjelp av versjonskontroll.

Ressurs (velg en) Vanskelighet Programvare
Git -dokumentasjon Medium Git
Git Offisielle ressurser Medium Git
Git -opplæring av Atlassian Medium Git

Lær hvordan du trekker ut, transformerer og laster inn data.

Kurs Vanskelighet Ferdighet undervist
Dataquest Data Engineer Path ($ 24,50 - $ 50 / måned) Hard Databaseoptimalisering, ETL, Oppgavebehandling
FME Workbench Tutorials Medium FME, Spatial ETL

Grunnleggende om webutvikling

Lær det grunnleggende om webutvikling. Det er veldig viktig å gjøre dette før du prøver å hoppe inn i web -GIS.

Kurs (Velg ett) Vanskelighet Språk
CS50: Webprogrammering med Python og JavaScript Medium Python, HTML, CSS, Javascript, SQL
Colt Steele's Web Developer Bootcamp ($ 10, søk etter kupong) Medium Node.js, HTML, CSS, Javascript, NoSQL
Odin -prosjektet Medium Rubin, HTML, CSS, Javascript

Anbefalt tilleggskurs

Lær hvordan du legger til kart i webapplikasjonene dine.

Kurs (Gjør begge deler) Vanskelighet Språk / rammer
GEOG 863 - Utvikling av webapplikasjoner for geospatiale fagfolk Lett HTML, CSS, Javascript, ArcGIS Javascript API
GEOG 585: Open Web Mapping Medium QGIS, GDAL, OGR, GeoServer, TileMill, Leaflet

Anbefalt tilleggskurs

Lær hvordan du lager moderne webapplikasjoner ved hjelp av frontend -biblioteker.

Kurs (Velg ett) Vanskelighet Rammeverk / bibliotek
Tyler Mcginnis: Gratis Online React BootCamp Medium Reagere
Maximilian Schwarzmüller: Angular 7 (tidligere Angular 2) - Den komplette guiden ($ 10, søk etter kupong) Hard Vinklet
Maximilian Schwarzmüller: Vue JS 2 - The Complete Guide ($ 10, søk etter kupong) Lett Vue

Frontend -utvikling er et så bredt tema at jeg bare vil koble til den strålende frontend -delen av 2018 Web Developer Roadmap. Du vil ha fått de fleste av disse ferdighetene allerede nå, men å bli komfortabel med pakkebehandlere, bygge verktøy, statlig ledelse, CSS -forbehandlere og frontend -testing vil sette deg på et flott sted for frontend -utvikling.

Lær hvordan du overfører data til en klient med en backend -server. Nesten alle stillingsannonser for GIS -utvikling som jeg har sett, krever .Net Core (C#). Jeg har sett noen få GIS -prosjekter som bruker Flask, Django (Python) og Java, men C# ser definitivt ut til å være den dominerende kraften her.

Backend -utvikling er et så bredt tema at jeg bare vil koble til den strålende backend -delen av 2018 Web Developer Roadmap.


PyGRASS -dokumentasjon¶

Python er et programmeringsspråk som er kraftigere enn skallskripting, men lettere og mer tilgivende enn C. PyGRASS er et objektorientert Python Application Programming Interface (API) for GRASS GIS. PyGRASS tilbyr grensesnitt til GRASS -moduler og funksjonalitet, samt til vektor- og rasterdata. For detaljer, se Zambelli et al. (2013) i referansene nedenfor. PyGRASS forbedrer integrasjonen mellom GRASS GIS og Python, noe som gjør bruken av Python under GRASS mer konsistent med selve språket. Videre forenkler det GRASS -skripting og programmering og mer naturlig for brukeren.

Bakgrunn: I 2006 begynte GRASS GIS -utviklere å ta i bruk Python for den nye GUI. På grunn av dette ble Python mer og mer viktig og utviklere konverterte alle skallskript fra GRASS GIS 6 til Python for GRASS GIS 7.

Å jobbe med PyGRASS du trenger en oppdatert versjon av GRASS GIS 7. Den eneste handlingen før du begynner å jobbe med PyGRASS er å lansere GRASS GIS 7 og fra konsolllanseringen python eller ipython (den andre er den anbefalte måten).

Les mer om hvordan du jobber med PyGRASS i denne dokumentasjonen.


1 Svar 1

En kodebit som er inkludert i et spørsmål her, bør ikke bare være en kopi/lim inn fra et større skript du jobber med, og det bør ikke være det større skriptet i sin helhet. Det bør være noe kortfattet som en potensiell svarer kan kopiere/lime inn og være klar (eller i det minste nær klar) til å kjøre en test på.

Her er noen forslag til hvordan en kodebit for et ArcPy -spørsmål skal se ut.

Start med å sette koden til side, og arbeid i stedet med et nytt tomt testskript. Dette kan kalles test.py, det kan plasseres på et enkelt sted (uten mellomrom i banenavnet) som C: temp, og enkle funksjonsklasse- og formfilnavn som C: temp testGDB testFC og C: temp test.shp kan brukes. Dette kan eliminere muligheten for at et langt banenavn forårsaker et problem.

Ideelt sett bør det ende opp med å være mer enn omtrent et dusin linjer. Dette er ikke alltid mulig men det bør være målet.

Bruk kopier/lim inn for å få inn små deler av det originale skriptet til det kan kjøres for å se den samme feilen, eller kopier store deler inn og vær forberedt på å fjerne det meste fra testskriptet. Målet med dette testskriptet er rent å reprodusere feilen din, slik at du kan spørre om den. Resten av det originale manuset er viktig for deg, men sjelden for noen som prøver å svare på spørsmålet ditt.

Ikke inkluder prøv/unntatt utsagn. Disse brukes slik at du kan fange og håndtere feil i den virkelige koden din, men når du prøver å finne ut hvorfor en kodebit fra den ikke fungerer, kan de maskere feilmeldingene som Python ellers ville vise deg.

Det bør ikke inneholde funksjoner med mindre de er absolutt nødvendige for spørsmålet ditt. Hvis en del av koden din inneholder noe som:

og hvis det er nødvendig for spørsmålet ditt, kan du forenkle det som:

Hvis det er et Python -skriptverktøy, i stedet for å la oss gjette hva du kan ha angitt i en verktøyparameter når du ser problemet ditt, kan du endre noe lignende:

Før du legger ut kodebiten, må du kontrollere at du har kjørt den nøyaktige kodebiten du skal legge ut, og deretter vise ikke bare koden, men også hele feilmeldingen (skriptnavn og linjenummer er uvurderlig) og annen utdata for eksempel fra utskrift eller arcpy.AddMessage -setninger.

Ideelt sett vil en potensiell svarer bare kopiere/lime inn kodebiten i et skript, kjøre den, se den samme feilmeldingen og annen utgang som deg, og tenke deretter:

Jeg ser det samme problemet, og jeg er ivrig etter å prøve å finne ut hva som skjer. Jeg er så glad for at jeg ikke trengte å be om et dusin avklaringer før jeg kom til dette punktet (noe jeg ikke ville ha gjort fordi jeg ville ha gått videre til andres spørsmål).

Noen ganger kan en persons kodestil være avskrekkende for en potensiell svarer som bestemmer seg for å frivillig tid til å prøve å forstå et spørsmål før han prøver å svare på det.

En måte å forbedre lesbarheten til Python/ArcPy -kode er å prøve å følge PEP 8 - Style Guide for Python Code.

Noen brukere har søkt om et PEP 8 -nivå av strenghet, men er ikke nødvendig.


Andre¶

AdventGX (basert i College Station, TX, USA) gir støtte for installasjon, opplæring og implementering av QGIS.

arx it (med base i Genève, Sveits og Lyon/Paris i Frankrike) har 20 års erfaring innen geoinformatikk. arx iT er spesialisert på geografiske informasjonssystemer (GIS) og geolokaliseringssystemer. Vårt tjenestespekter dekker alle geomatikk / geospatiale behov: GIS -rådgivning og ekspertise, Romlig datateknikk, Integrering av tilpassede løsninger, Opplæring, GIS Outsourcing og vedlikehold av tredjeparts applikasjoner. Tjenestene våre er en del av en ekte kvalitetsmetode, takket være vår ISO 9001 kvalitetssertifisering.

Astun Technology (basert i Surrey, Storbritannia) ble dannet i 2005 for å tilby åpen kildekode og nettbaserte GIS-tjenester til lokale og sentrale myndigheter. I dag, ettersom alle organisasjoner innser de tekniske og økonomiske fordelene ved å bruke skyløsninger for å lage, administrere og levere sine avgjørende GEO-tjenester, fortsetter etterspørselen etter Astuns kunnskap og erfaring med å levere fullt administrerte AWS-baserte GIS-skyløsninger. For mer informasjon, vennligst besøk https://astuntechnology.com/

Bird's Eye View GIS (basert i Albuquerque, New Mexico, USA) tilbyr kommersielle GIS -tjenester og støtte og opplæring i QGIS, GRASS GIS og andre FOSS GIS -applikasjoner.

Champs Libres Coopérative er et belgisk selskap som arbeider innen geomatikk og programvareutvikling med åpen kildekode. Vi arrangerer regelmessig QGIS -opplæring på vårt kontor eller hos kundene våre. Vi tilbyr også støtte til bruk av QGIS og/eller for utvikling av QGIS -plugins.

Clear Mapping Co (basert i Penryn, Cornwall, Storbritannia) er et prisbelønt internasjonalt kartografisk designkonsulentfirma. Vi lager flotte kart for å forbedre effektiviteten på arbeidsplassen med et inkluderende og bærekraftig designfokus. Våre skreddersydde GIS -opplæringskurser i QGIS og annen GIS -programvare gir muligheten til å effektivisere håndtering av romlige data og lage klare kart.

exeGesIS SDM Ltd er basert i Sør -Wales i Storbritannia. Vi tilbyr støtte og opplæringskurs på forskjellige nivåer, enten offentlige eller private, sammen med skreddersydde workshops og veiledning. Vi kan bistå med overgangen fra alternative GIS-løsninger til QGIS, samt utvikling av plug-ins for å oppfylle dine forretningskrav.

FOSS Academy (basert i Bonn, Tyskland) FOSS Academy er et opplæringsinstitutt som tilbyr ulike kurs, fra nybegynnertimer til avanserte python -programmeringskurs for QGIS, samt gratis online webinarer om QGIS -relaterte emner. Instituttet drives av WhereGroup.

GeoICON (basert i Singapore og opererer i Sørøst -Asia) har jobbet med offentlige organisasjoner i over 10 år og tilbyr et komplett spekter av tjenester rundt QGIS, inkludert opplæring og kommersiell støtte.

Geospatial Training Solutions (Dr Nick Bearman) er basert i Cornwall, Storbritannia og tilbyr skreddersydde GIS -opplæringskurs for forskere, fagfolk og studenter. Jeg bruker QGIS i mye av mitt konsulentarbeid, og lærer et bredt spekter av fageksperter å forstå og arbeide med romlige data. Jeg kan vise forskningsgruppen eller organisasjonen din hvordan du kan få mer ut av dine romlige data og hvordan du lager bedre kart for publikasjonene dine eller bruker romlige data for å forbedre bunnlinjen.

Gispo Ltd (basert i Finland). Vi driver våre kunder til suksess med å levere pragmatiske løsninger for strategiske beslutninger ved å bruke geospatial programvare med åpen kildekode. Vi tilbyr QGIS, GeoServer, PostGIS, GDAL/OGR og MapProxy støtte og opplæring for våre kunder. Vi tror sterkt på at åpenhet vinner.

gis3w (basert i Italia) tilbyr geografiske og økologiske analysetjenester og støtte og bistand med qgis.

GKG Kassel, Tyskland (Dr.-Ing. Claas Leiner) tilbyr opplæring, tjenester og støtte rundt de gratis geografiske informasjonssystemene QGIS, GRASS, SAGA og PostGIS samt romlig datahåndtering, analyse og kartografi.

Geolis (med base i Lucerne, Sveits) tilbyr kommersiell GIS -rådgivning, støtte og opplæring i QGIS.

Institute For Mapping Technology (basert i Austin, TX, USA) gir støtte og opplæring for QGIS og PostGIS.

Karttakeskus (basert i Finland) tilbyr kommersiell støtte og opplæring for QGIS og åpne romlige data.

Mierune Inc. (basert i Japan) tilbyr kommersiell rådgivning, opplæring, støtte og tilpasning av QGIS- og FOSS4G -programvare. Vi arrangerer også praktiske workshops med disse verktøyene. Ta kontakt med oss ​​hvis du har spørsmål angående systemutvikling, visualisering eller analyse som involverer posisjoneringsdata.

nGNUity.net- FOSS-talsmann fra Filippinene som tilbyr kommersielle GIS-tjenester, opplæring og rådgivning for QGIS, bistand til visualisering av romlig data til lokale myndigheter, ideelle organisasjoner, forskningsbyråer og samfunnsgrupper siden 2007. Tilbyr ulike mobildatainnsamling og kartleggingstjenester ved hjelp av programvarebunken Open Data Kit / KoBo Toolbox.

North River Geographic Systems, Inc er et geospatialt konsulentfirma som ligger i USA. Vi gir støtte for QGIS, PostGIS og en hel rekke FOSS4G -programvare. NRGS tilbyr også prosjektbasert støtte for organisasjonen din, inkludert datastøtte, kartografi og analyse.

OpenGeoLabs s.r.o (basert i Praha, Tsjekkia) tilbyr opplæringskurs (ved bruk av GISMentors varemerke), teknisk støtte og tilpasset utvikling for åpen kildekode -programvare for geospatial.

Soluciones en Tecnologías de Información Geográfica (SOLTIG) (basert i Costa Rica) tilbyr opplæring, støtte, rådgivning og programmering for QGIS og andre FOSS -applikasjoner.

SunGIS (basert i Valmiera, Latvia) tilbyr kommersiell støtte, rådgivning, databehandling og tilpasset programmering for QGIS-, GRASS GIS- og FOSS GIS -baserte SDI -løsninger.

Le Groupe SYGIF Inc. (basert i Rimouski, Quebec, Canada) spesialiserer seg på utvikling av informasjonsteknologi (GIS) rettet mot integrert landforvaltning. Selskapet utvikler og støtter komplementære verktøy for QGIS og MapServer og har også en anerkjennelse av ESRI -selskapet som utvikler og forhandler av produktene deres.

TAXUS IT (basert i Warszawa, Polen) tilbyr kommersielle GIS -tjenester, også støtte og opplæring i QGIS og GRASS.

Terraplan (Schallstadt/Freiburg, Tyskland) tilbyr opplæring og GIS -rådgivning for QGIS. Fokuset er på rådgivning for kommuner, alt fra introduksjon av QGIS til full utskifting av andre kommersielle GIS -løsninger.

Terrestris (Bonn, Tyskland) tilbyr kommersielle tjenester og opplæring for QGIS.

thinkWhere (Stirling, Skottland) thinkWhere er et uavhengig GIS -konsulenthus i Storbritannia. Vi tilbyr et bredt spekter av innovative GIS-produkter og -tjenester, inkludert "Location Center" (et hostbasert skybasert GIS bygget på åpen kildekode-teknologi). Som et QGIS -nettsted bruker vårt team av geospatiale eksperter QGIS daglig og tilbyr QGIS -støtte til kunder. Vi holder også vanlige QGIS- og PostGIS -kurs.

WhereGroup (Bonn, Tyskland) WhereGroup tilbyr hele spekteret av tjenester rundt QGIS, inkludert tilpasset programmering, kommersiell støtte og opplæring.

WIGeoGIS WIGeoGIS (basert i München, Tyskland og Wien, Østerrike) tilbyr et bredt spekter av QGIS -plugins som er spesielt designet for geomarketing og romlig forretningsanalyse sammen med markedsdata. Følgende funksjoner dekkes av pluginene: batch-geokoding og adressesøk, beregning av reisetid isokroner og avstandsmatriser, Huff-Gravity-modeller og Territory-Planning. In addition to the plugins WIGeoGIS also offers webgis, commercial training, market data and support for QGIS.