Više

Greška u geoprostornom razvoju Pythona

Greška u geoprostornom razvoju Pythona


Radim kroz neke primjere u knjizi o geoprostornom razvoju Pythona Erika Westre.

Na stranici 439, o postavljanju poslužitelja karte pločica, on daje sljedeći kôd za izračunavanje graničnog okvira na osnovu lokacije u centru i nivoa zumiranja:

TILE_WIDTH = 256 TILE_HEIGHT = 256 x_extent = _unitsPerPixel (zoomLevel) * TILE_WIDTH y_extent = _unitsPerxel ): return 0.703125/math.pow (2, zoomLevel)

Nigde ne precizira šta jexiyočekuje se da će jedinice biti. Pretpostavio sam geografske koordinate (isto što i karta), ali tada gornji izračuni ne funkcioniraju.

Na primjer, pretpostavimo da jesamx = 50,0iy = -2,09i nivo zumiranja 5.

Za min_lat ću tada imati otprilike:

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

Što će dati manje od -90, granica naše karte ...?!?

Svaki put kada prođete negativnu koordinatu lat/long ovo će pasti ...

Koje se x/y koordinate ovdje očekuju?


Vrijednosti zaxiyu ovom slučaju vjerovatno su samo indeksi za X-Y-Z kartografsku kartu. Indeksi TMS usluge su bez jedinica, oni jednostavno broje broj pločica iz gornjeg lijevog kuta.

U vašem primjeru,_unitsPerPixelfunkcija vraća skalu piksela za dati nivo zumiranja. Vrijednost je širina i visina jednog piksela u jedinicama projekcije (koja se ovdje čini širinom/dužinom). Kada se pomnoži saTILE_WIDTH, dobivate skalu jedne pločice u jedinicama koordinatnog sistema u kojem radite.

Uz to, vrijednostx * x_extent - 180(gdexje indeks pločice) daje vam dugu vrijednost minus "pomak" od -180 stupnjeva. Odmak je neophodan jer brojanje započinjete s lijeva na desno. Dakle, ako je indeksxje nula, nalazite se na lijevom rubu karte imin_longvrijednost -180. Dakle, ni x ni y ne bi trebali imati negativnu vrijednost.

Poslužitelji karti pločica obično su napravljeni za upotrebu na webu, gdje biblioteka (kao što su OpenLayers ili letak) traži pločicu koristeći samo indeks xyz pločica, a ne prostorno upitivanje. Za dalje čitanje o ovome pogledajte

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

Evo lijepe vizualizacije kako indeksi pločica rade za google karte (imajte na umu da postoje i druge definicije)

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


1.1.1 Potreba za automatizacijom GIS -a

Geografski informacijski sustav (GIS) može manipulirati i analizirati skupove prostornih podataka u svrhu rješavanja geografskih problema. GIS analitičari izvode sve vrste operacija nad podacima kako bi bili korisni za rješavanje fokusiranog problema. To uključuje izrezivanje, reprojektiranje, međuspremljenje, spajanje, mozaik, izdvajanje podskupa podataka i stotine drugih operacija. U softveru ArcGIS koji se koristi u ovom kursu ove operacije su poznate kao geoprocesiranje a izvode se pomoću alati.

Uspješna GIS analiza zahtijeva odabir najprikladnijih alata za rad s vašim podacima. ArcGIS koristi metaforu alata za organizaciju svog paketa alata. Birate alate koji su vam potrebni i pokrećete ih pravilnim redoslijedom kako biste napravili gotov proizvod.

Pretpostavimo da ste odgovorni za odabir web mjesta za lanac restorana. Možete koristiti jedan alat za odabir zemljišnih čestica duž glavne saobraćajnice, drugi alat za odabir parcela ne manjih od 0,25 jutara i druge alate za ostale kriterije odabira. Da je ovaj postupak odabira ograničen na malo područje, vjerojatno bi imalo smisla ručno obaviti posao.

Međutim, pretpostavimo da ste odgovorni za provođenje iste analize za nekoliko područja u cijeloj zemlji. Budući da ovaj scenarij uključuje pokretanje istog niza alata za nekoliko područja, on se dobro podnosi automatizaciji. Automatiziranje ovakvih zadataka ima nekoliko glavnih prednosti:

  • Automatizacija čini posao lakše. Jednom kada automatizirate proces, ne morate ulagati toliko truda da se sjetite koje alate koristiti ili pravilnog slijeda u kojem ih treba pokrenuti.
  • Automatizacija čini posao brže. Računalo može otvarati i izvršavati alate u nizu mnogo brže nego što možete postići isti zadatak pokazivanjem i klikom.
  • Automatizacija čini posao tačnije. Svaki put kada ručno izvršite zadatak na računaru, postoji mogućnost greške. Šansa se množi s brojem i složenošću koraka u vašoj analizi, kao i umorom nastalim ponavljanjem zadatka mnogo puta. Nasuprot tome, nakon što je automatizirani zadatak konfiguriran, računaru se može vjerovati da svaki put izvodi isti slijed koraka za potencijalno beskonačan broj ciklusa.

ArcGIS platforma korisnicima nudi nekoliko načina za automatizaciju zadataka geoprocesiranja. Ove se opcije razlikuju po količini vještine potrebne za izradu automatiziranog rješenja i po nizu scenarija na koje svaki može odgovoriti. Donji tekst ukratko se dotiče ovih opcija automatizacije kako bi se od najmanjih vještina kodiranja zahtijevalo najviše.

Prva opcija je izgradnja modela pomoću ModelBuilder -a. ModelBuilder je interaktivni program koji omogućava korisniku da "poveže" alate zajedno, koristeći izlaz jednog alata kao ulaz u drugi. Možda najatraktivnija karakteristika ModelBuilder -a je da korisnici mogu automatizirati prilično složene GIS tijekove rada bez potrebe za programiranjem. Naučit ćete kako koristiti ModelBuilder početkom ovog kursa.

Neki zadaci automatizacije zahtijevaju veću fleksibilnost nego što nudi ModelBuilder, pa se za ove scenarije preporučuje pisanje kratkih računalnih programa ili skripti. Većina ovog kursa bavi se pisanjem scenarija.

Skripta obično izvršava neku sekvencijalnu proceduru koraka. Unutar skripte možete pokrenuti GIS alate pojedinačno ili ih povezati zajedno. Možete umetnuti uvjetnu logiku u svoju skriptu za rukovanje slučajevima u kojima bi se trebali pokrenuti različiti alati ovisno o ishodu prethodne operacije. Također možete uključiti iteraciju ili petlje u skriptu za ponavljanje jedne radnje onoliko puta koliko je potrebno za izvršavanje zadatka.

Postoje posebni skriptni jezici za pisanje skripti, uključujući Python, JScript i Perl. Često ti jezici imaju jednostavniju sintaksu i lakše ih se uči od drugih jezika, poput C, Java ili Visual Basic.

Iako ArcGIS podržava različite skriptne jezike za rad sa svojim alatima, Esri naglašava Python u svojoj dokumentaciji i uključuje Python sa ArcGIS Desktop i Pro instalacijama. Na ovom ćemo tečaju iz tog razloga raditi strogo s Pythonom, kao i činjenicom da se Python može koristiti za mnoge druge zadatke manipulacije datotekama i podacima izvan ArcGIS -a. Naučit ćete osnove jezika Python, kako napisati skriptu te kako manipulirati i analizirati GIS podatke pomoću skripti. Konačno, primijenit ćete svoje novo znanje o Pythonu na konačni projekt, gdje ćete napisati skriptu po svom izboru koju ćete možda moći primijeniti izravno na svoj rad.

Nedavno razvijena opcija automatizacije dostupna na ArcGIS platformi je ArcGIS API (Application Programming Interface) za Python. Ovo je okruženje u kojem je Python skriptiranje bolje integrirano s Esrijevim tehnologijama zasnovanim na oblaku i poslužiteljima (ArcGIS Online, Portal za ArcGIS, ArcGIS Enterprise). Kod napisan radi interakcije s Python API -jem često se piše u "notebook" okruženju kao što je Jupyter Notebook. U okruženju prijenosnog računala, kôd se može izvoditi postupno s među rezultatima prikazanim između Python izraza. Upotreba Python API -ja u okruženju Jupyter Notebook tema je u našoj naprednoj klasi Python, GEOG 489.

Za zadatke geoprocesiranja koji zahtijevaju podršku za interakciju korisnika s kartom ili drugim elementima korisničkog sučelja, ArcGIS Pro SDK (Kit za razvoj softvera) nudi mogućnost dodavanja prilagođenih alata u Pro sučelje. Pro SDK zahtijeva programiranje u .NET okviru pomoću .NET jezika kao što je Visual Basic .NET ili C#. Rad sa objektnim modelom ovog SDK -a pruža veću fleksibilnost u smislu onoga što se može izgraditi u odnosu na pisanje Python skripti oko njihovog okvira za geoprocesiranje. Kompromis je viši nivo složenosti uključen u kodiranje.

Konačno, programeri koji žele stvoriti vlastite prilagođene GIS aplikacije, obično fokusirane na pružanje mnogo uže funkcionalnosti od ArcGIS Pro-a koji odgovara svim veličinama, mogu razvijati aplikacije koristeći ArcGIS Runtime SDK-ove. Runtime SDK -ovi omogućuju stvaranje aplikacija za desktop, Windows, Mac ili Linux računare, kao i za iOS i Android mobilne uređaje, što opet uključuje veći napor nego vaša tipična Python skripta za geoprocesiranje.

Ova prva lekcija će vas upoznati sa konceptima izgradnje modela i pisanja skripti. Za početak ćemo se samo upoznati s načinom rada alata u ArcGIS -u i kako ih možete koristiti u sučelju ModelBuilder. Zatim ćemo pokriti neke od osnova Pythona i vidjeti kako se alati mogu pokrenuti unutar skripti.


Python geoprostorni razvoj

Ova knjiga je za iskusne programere Pythona koji žele naučiti o geoprostornim konceptima, pribaviti i raditi s geoprostornim podacima, riješiti prostorne probleme i izgraditi sofisticirane aplikacije zasnovane na karti koristeći Python.

  • Pristupite, manipulirajte i prikazujte geoprostorne podatke iz svojih Python programa
  • Ovladajte osnovnim geoprostornim konceptima lokacije, udaljenosti, jedinica, projekcija i datuma
  • Čitanje i pisanje geoprostornih podataka u vektorskom i rasterskom formatu
  • Izvršite složene geoprostorne proračune u stvarnom svijetu koristeći Python
  • Pohranite i pristupite geoprostornim informacijama u bazi podataka
  • Koristite tačke, linije i poligone u svojim Python programima
  • Pretvorite geoprostorne podatke u atraktivne karte pomoću alata zasnovanih na Pythonu
  • Izradite potpune web aplikacije za mapiranje koristeći Python

Geoprostorni razvoj povezuje vaše podatke s lokacijama na površini Zemlje. Pisanje geoprostornih programa uključuje zadatke kao što su grupiranje podataka prema lokaciji, skladištenje i analiza velikih količina prostornih informacija, izvođenje složenih geoprostornih proračuna i crtanje šarenih interaktivnih karata. Da biste to učinili dobro, trebat će vam odgovarajući alati i tehnike, kao i temeljno razumijevanje geoprostornih koncepata, poput projekcija karte, datuma i koordinatnih sistema.

Ova knjiga pruža pregled glavnih geoprostornih koncepata, izvora podataka i alata. Počinje pokazujući vam kako pohraniti i pristupiti prostornim podacima pomoću Pythona, kako izvesti niz prostornih proračuna i kako pohraniti prostorne podatke u bazu podataka. Nadalje, knjiga vas uči kako izgraditi vlastito sučelje skliznute mape unutar web aplikacije, a završava detaljnom konstrukcijom uređivača geoprostornih podataka koristeći okvir GeoDjango.

Do kraja ove knjige moći ćete s pouzdanjem koristiti Python za pisanje vlastitih geoprostornih aplikacija, u rasponu od brzih, jednokratnih pomoćnih programa do sofisticiranih web aplikacija zasnovanih na kartama i drugim geoprostornim podacima.

Ova knjiga je sveobuhvatan kurs o geoprostornom razvoju. Koncepti koje morate znati predstavljeni su na praktičan način s primjerom koda koji će vam pomoći da odmah riješite probleme u stvarnom svijetu. Veći programi se grade korak po korak, vodeći vas kroz proces izgradnje vlastitih sofisticiranih aplikacija za mapiranje.


  • Napravite interaktivnu mapu
  • Dodajte lokalne skupove podataka (npr. GeoJSON, JSON, Shapefile) na mapu bilo putem koda ili grafičkog sučelja
  • Dodajte pandas DataFrames i GeoPandas GeoDataFrames na mapu
  • Koristite widget za brzi pregled filtriranih rezultata pd.DataFrame -a
  • Filtrirajte bilo koji ne-TileLayer na mapi prema jedinstvenoj vrijednosti u polju/koloni
  • Obradite podatke SafeGraph i raspakirajte json stupce u postojeći ili novi okvir podataka

Ovaj paket je kreiran pomoću Cookiecutter -a i predloška projekta giswqs/pypackage.


Besplatno preuzmite Python za GIS programiranje

Python je dostupan za sve glavne operativne sisteme: Windows, Linux/Unix, OS/2, Mac, Amiga, između ostalih. Postoje čak i verzije koje se pokreću na .NET -u, Java virtuelnoj mašini i mobilnim telefonima Nokia Series 60. Bit će vam drago znati da će se isti izvorni kôd izvoditi nepromijenjen u svim implementacijama.

Vaš omiljeni sistem nije naveden ovdje? Možda i dalje podržava Python ako za njega postoji C kompajler. Raspitajte se o vijestima: comp.lang.python - ili samo pokušajte sami sastaviti Python. Python je prijateljski raspoložen. i lako se uči

Python news grupa je poznata kao jedna od najprijateljskijih. Oduševljena zajednica programera i korisnika održava wiki, održava međunarodne i lokalne konferencije, vodi razvojne sprinteve i doprinosi mrežnim spremištima koda.

Python također dolazi s kompletnom dokumentacijom, integriranom u jezik i kao zasebnim web stranicama. Mrežni vodiči ciljaju i iskusnog programera i pridošlicu. Svi su dizajnirani da vas brzo učine produktivnim. Dostupnost prvoklasnih knjiga upotpunjuje paket učenja. Python je otvoren

Implementacija Pythona je pod licencom otvorenog koda što ga čini slobodno upotrebljivim i distribuiranim, čak i za komercijalnu upotrebu. Python licencom upravlja Python Software Foundation.

Michael R. Meuser
Stručnjak za istraživanje podataka i GIS

MapCruzin.com je nezavisna firma specijalizirana za razvoj GIS projekata i istraživanje podataka. Napravili smo prve interaktivne karte postrojenja za toksične kemikalije sa sjedištem u SAD -u na internetu 1996. godine i od tada smo na mreži. Saznajte više o nama i našim uslugama.

Imate projekat na umu? Ako imate podatke, potrebe za GIS projektom ili prilagođenim shapefile -om kontaktiraj Mikea.

Pronađi: Mape, Shapefiles, GIS softver i još mnogo toga

MapCruzin Blog za ažuriranja, pitanja i odgovore
Blog Updates


Informacije o karijeri i plaći

Vaša karijera

Veleučilište Saskatchewan ima odlične rezultate kada je u pitanju zapošljavanje diplomaca: 80% diplomiranih studenata GIS -a radi u svom području u roku od šest mjeseci nakon diplomiranja. Oni rade kao GIS tehničari za mapiranje, GIS stručnjaci, kartografi, GPS operatori, analitičari podataka ili analitičari daljinskog mjerenja. Sa svojom specijaliziranom obukom iz primjene GIS-a u upravljanju resursima, možete istražiti mogućnosti zapošljavanja sa širokim spektrom potencijalnih poslodavaca, uključujući industrije zasnovane na prirodnim resursima, industrije Prvih nacija, konsultantske kuće, agencije za zaštitu okoliša, vladine službe i općinske agencije.


Greška geoprostornog razvoja Pythona - geografski informacijski sistemi

U razvoju

Ovo spremište postavlja put do nekoga ko nema GIS iskustva do iskusnog GIS programera. Odjeljci su organizirani prema nivou vještine i namijenjeni su za uzastopno napredovanje. Ovo je jako inspirisano Univerzitetom otvorenog koda.

Resursi uglavnom dolaze iz visoko učinkovitih i besplatnih tečajeva, kao i postova na blogovima i vodiča. Postoji mješavina vlasničkih (ESRI) i materijala otvorenog koda.

Slobodno pridonesite i ispravite sve greške koje neizbježno napravim.

Ako ste započeli uvod u tečaj GIS -a ili ste koristili GIS na radnom mjestu više od nekoliko mjeseci, preskočite ovaj odjeljak. Inače, pregledajmo neke materijale kako bismo bili sigurni da imamo osnovno razumijevanje o tome šta je GIS, šta su uobičajeni zadaci GIS -a i koji GIS alati postoje.

Odaberite jedan od dolje navedenih softvera za radnu površinu i prođite kroz povezani kurs kako biste ubrzali. To će potrajati oko 40 sati i dat će vam sjajnu osnovu za GIS.

ArcMap i ArcPro su vlasnički desktop softver za izvođenje GIS analize koji distribuira ESRI. Oni se najviše koriste u industriji, a njihovo učenje najsigurniji je ulog pri uranjanju nogu u industriju. Upoznavanje ArcPro-a dolazi s besplatnom jednogodišnjom ArcPro licencom i vrijedno je novca ako mislite ozbiljno ući na teren. Ako uvedete uvod u GIS kurs kroz fakultet, velika je vjerovatnoća da ćete kroz ovu knjigu proći kao većina svog predmeta.

Najčešće korišteni softver za računare otvorenog koda. Besplatno je za preuzimanje i ima širok raspon dodataka koji vam omogućuju da radite gotovo sve s GIS -om.

Tečajevi (odaberite jedan) Poteškoće GIS softver
Coursera GIS specijalizacija Lako ArcPro
Upoznajte ArcPro (40 USD) Lako ArcPro
Službeni vodič za QGIS Lako QGIS

Naučite osnove programiranja. Koliko uživate u jednom od ovih kurseva može biti dobar pokazatelj vašeg uspjeha u programiranju.

Tečajevi (odaberite jedan) Poteškoće Jezici
Uvod u računarstvo i programiranje pomoću Pythona Srednje Python
CS50: Uvod u računarske nauke Teško C, PHP, JavaScript, SQL, CSS i HTML

Analiza podataka pomoću Pythona

Naučite kako koristiti popularne biblioteke za analizu podataka u Pythonu, kao što su Numpy i Pandas. Ovdje navodim dosta plaćenih opcija jer su vrlo kvalitetne i interaktivne.

Resurs (odaberite jedan) Poteškoće
Geo Python Srednje
Python priručnik o nauci o podacima Srednje
Python za analizu podataka (28 USD) Srednje
Dataquest (23 USD - 50 USD mjesečno) Srednje
Data Camp (25 USD - 30 USD mjesečno) Srednje
Brandon Rhoades Pandas Tutorial Srednje

GIS programiranje s Pythonom

Naučite pisati skripte za obavljanje GIS analiza i automatizirati ponavljajuće zadatke s Pythonom.

Tečajevi (odaberite jedan) Poteškoće GIS softver
GEOG 485: GIS programiranje i razvoj softvera Srednje ArcGIS / ArcPy
Automatizacija GIS procesa Srednje GDAL, OGR, GeoPandas, Shapely, QGIS

Preporučeni dodatni kursevi

Naučite kako postavljati upite podacima, praviti tablice i prikaze te vršiti analizu podataka s bazama podataka.

Tečajevi (odaberite jedan) Poteškoće Database Engine
SQL Zoo Srednje SQL Server, Oracle, MySQL, DB2 i PostgreSQL
Stanford - Uvod u baze podataka Teško Nepoznato
CS145: Upravljanje podacima i sistemi podataka Teško Google BigQuery

Naučite kako pohraniti GIS podatke i manipulirati njima u bazi podataka.

Tečajevi (odaberite jedan) Poteškoće Database Engine
GEOG 868 - Upravljanje prostornim bazama podataka Srednje PostgreSQL / PostGIS
Službeno - uvod u PostGIS Srednje PostgreSQL / PostGIS
CS145: Upravljanje podacima i sistemi podataka Teško Google BigQuery

Naučite kako upravljati projektima pomoću kontrole verzija.

Resurs (odaberite jedan) Poteškoće Softver
Git Documentation Srednje Git
Git Offical Resources Srednje Git
Git Tutorial by Atlassian Srednje Git

Saznajte kako izdvojiti, transformirati i učitati podatke.

Kursevi Poteškoće Naučena vještina
Put inženjera podataka Dataquest (24,50 USD - 50 USD mjesečno) Teško Optimizacija baze podataka, ETL, upravljanje zadacima
Vodiči za FME Workbench Srednje FME, prostorni ETL

Osnove web razvoja

Naučite osnove web razvoja. Vrlo je važno to učiniti prije nego što pokušate uskočiti u web GIS.

Tečajevi (odaberite jedan) Poteškoće Jezici
CS50: Web programiranje s Pythonom i JavaScript -om Srednje Python, HTML, CSS, Javascript, SQL
Bootcamp za web programere Colt Steele -a (10 USD, potražite kupon) Srednje Node.js, HTML, CSS, Javascript, NoSQL
Projekat Odin Srednje Ruby, HTML, CSS, Javascript

Preporučeni dodatni kurs

Saznajte kako dodati mape u svoje web aplikacije.

Kursevi (uradite oboje) Poteškoće Jezici / Okviri
GEOG 863 - Razvoj web aplikacija za geoprostorne profesionalce Lako HTML, CSS, Javascript, ArcGIS Javascript API
GEOG 585: Otvoreno mapiranje weba Srednje QGIS, GDAL, OGR, GeoServer, TileMill, Letak

Preporučeni dodatni kurs

Naučite kako napraviti moderne web aplikacije pomoću prednjih biblioteka.

Tečajevi (odaberite jedan) Poteškoće Okvir / biblioteka
Tyler Mcginnis: Besplatni online React BootCamp Srednje Reagiraj
Maximilian Schwarzmüller: Angular 7 (ranije Angular 2) - Kompletan vodič (10 USD, potražite kupon) Teško Angular
Maximilian Schwarzmüller: Vue JS 2 - Kompletan vodič (10 USD, potražite kupon) Lako Vue

Prednji razvoj je toliko široka tema da ću se samo povezati sa sjajnim prednjim dijelom Mape puta za web programere za 2018. godinu. Većinu ovih vještina ste već usvojili, ali ako se upoznate s menadžerima paketa, alatima za izgradnju, upravljanjem stanjem, CSS predprocesorima i prednjim testiranjem, bit ćete na odličnom mjestu za razvoj prednjeg kraja.

Naučite kako posluživati ​​podatke klijentu sa pozadinskim serverom. Gotovo sve objave pozadinskih GIS razvojnih poslova koje sam vidio zahtijevaju .Net Core (C#). Vidio sam nekoliko GIS projekata koji koriste Flask, Django (Python) i Javu, ali C# je definitivno ovdje dominantna snaga.

Pozadinski razvoj je toliko široka tema da ću se samo povezati s sjajnim pozadinskim odjeljkom Mape puta za web programere za 2018. godinu.


PyGRASS dokumentacija¶

Python je programski jezik koji je moćniji od skriptiranja ljuske, ali lakši i opraštajući od C. PyGRASS je objektno orijentirano Python aplikacijsko programsko sučelje (API) za GRASS GIS. PyGRASS nudi sučelja za GRASS module i funkcionalnost, kao i za vektorske i rasterske podatke. Za detalje vidi Zambelli et al. (2013) u donjim referencama. PyGRASS poboljšava integraciju između GRASS GIS -a i Pythona, čineći upotrebu Pythona pod GRASS -om dosljednijom sa samim jezikom. Nadalje, pojednostavljuje GRASS skriptiranje i programiranje i prirodnije je za korisnika.

Pozadina: 2006. godine, programeri GRASS GIS -a počeli su usvajati Python za novi grafički interfejs. Zbog toga je Python postajao sve važniji, a programeri su pretvorili sve skripte ljuske iz GRASS GIS 6 u Python za GRASS GIS 7.

Za rad sa PyGRASS potrebna vam je ažurirana verzija GRASS GIS-a 7. Jedina radnja prije početka rada PyGRASS treba pokrenuti GRASS GIS 7 i od lansiranja konzole python ili ipython (drugi je preporučeni način).

Pročitajte više o tome kako raditi PyGRASS u ovoj dokumentaciji.


1 Odgovor 1

Isječak koda koji je uključen u pitanje ovdje ne bi trebao biti samo copy/paste iz veće skripte na kojoj radite, i ne bi trebao biti taj veći skript u cijelosti. Trebalo bi biti nešto sažeto na što potencijalni odgovor može kopirati/zalijepiti i biti spreman (ili barem skoro spreman) za pokretanje testa.

Evo nekoliko prijedloga o tome kako bi trebao izgledati isječak koda za ArcPy pitanje.

Počnite tako što ćete ostaviti kôd po strani, a umjesto toga raditi na novoj praznoj testnoj skripti. To bi se moglo nazvati test.py, moglo bi se postaviti na jednostavnu lokaciju (bez razmaka u imenu putanje) poput C: temp, i jednostavne nazive klasa svojstava i oblika datoteke poput C: temp testGDB testFC i C: temp test.shp se može koristiti. Ovo može eliminirati mogućnost da ime dugačke staze uzrokuje problem.

U idealnom slučaju ne bi trebalo biti više od desetak redaka. To nije uvijek moguće ali to bi trebao biti cilj.

Upotrijebite copy/paste da biste unijeli male dijelove izvorne skripte dok se ne može pokrenuti da biste vidjeli istu grešku, ili kopirajte velike dijelove i budite spremni ukloniti većinu ispisa iz testne skripte. Cilj ove testne skripte je samo reproduciranje vaše greške, tako da možete pitati o njoj. Ostatak vašeg originalnog scenarija važan je za vas, ali rijetko za nekoga ko pokušava odgovoriti na vaše pitanje.

Nemojte uključivati ​​naredbe try/except. Oni se koriste kako biste mogli zarobiti greške u svom stvarnom kodu i nositi se s njima, ali kada pokušate otkriti zašto isječak iz njega ne radi, mogu prikriti poruke o greškama koje bi vam Python inače prikazao.

Ne bi trebao uključivati ​​funkcije osim ako su apsolutno neophodni za vaše pitanje. Ako dio vašeg koda uključuje nešto poput:

a ako je to potrebno za vaše pitanje, možda ga pojednostavite na sljedeći način:

Ako se radi o Python skriptnom alatu, umjesto da ostavite da pogađamo šta ste možda unijeli u parametar alata kada vidite svoj problem, promijenite bilo šta poput:

Prije nego što objavite isječak koda, provjerite jeste li pokrenuli upravo onaj isječak koda koji namjeravate objaviti, a zatim pokažite ne samo kôd već i cijelu poruku o grešci (naziv skripte i broj retka su neprocjenjivi) i bilo koji drugi izlaz kao što su ispisi ili arcpy.AddMessage izrazi.

U idealnom slučaju, potencijalni odgovor će jednostavno kopirati/zalijepiti vaš isječak koda u skriptu, pokrenuti ga, vidjeti istu poruku o grešci i drugi izlaz kao vi, a zatim pomisliti:

Vidim isti problem i željan sam pokušati shvatiti što se događa. Tako mi je drago što nisam morao tražiti desetak pojašnjenja prije nego što sam došao do ove tačke (što ne bih učinio jer bih prešao na tuđe pitanje).

Ponekad stil kodiranja neke osobe može odvratiti potencijalnog odgovornika koji odlučuje hoće li utrošiti vrijeme da pokuša razumjeti pitanje prije nego što pokuša odgovoriti na njega.

Jedan od načina da poboljšate čitljivost Python/ArcPy koda je da pokušate da se prilagodite PEP 8 - Vodič za stil za Python kod.

Neki korisnici su tražili nivo strogosti PEP 8, ali to nije potrebno.


Ostali¶

AdventGX (sa sjedištem u College Station, TX, SAD) pruža podršku za instalaciju, obuku i implementaciju QGIS -a.

arx it (sa sjedištem u Ženevi, Švicarska i Lyon/Pariz u Francuskoj) ima 20 godina iskustva u području geoinformatike. arx iT je specijaliziran za geografske informacijske sisteme (GIS) i geolokacijske sisteme. Naš asortiman usluga pokriva sve geomatičke / geoprostorne potrebe: GIS savjetovanje i stručnost, Inženjering prostornih podataka, Integracija prilagođenih rješenja, Obuka, GIS outsourcing i održavanje aplikacija trećih strana. Naše usluge dio su pravog pristupa kvaliteti, zahvaljujući certifikatu kvalitete ISO 9001.

Astun Technology (sa sjedištem u Surreyu, UK) osnovana je 2005. godine kako bi lokalnim i centralnim vlastima pružala usluge otvorenog koda i GIS usluge zasnovane na webu. Danas, kako sve organizacije shvaćaju tehničke i financijske prednosti korištenja cloud rješenja za stvaranje, upravljanje i isporuku svojih ključnih GEO usluga, potražnja za Astunovim znanjem i iskustvom u isporuci potpuno upravljanih GIS rješenja zasnovanih na AWS-u nastavlja rasti. Za više informacija posjetite https://astuntechnology.com/

Bird's Eye View GIS (sa sjedištem u Albuquerqueu, Novi Meksiko, SAD) pruža komercijalne GIS usluge te podršku i obuku u QGIS, GRASS GIS i drugim FOSS GIS aplikacijama.

Champs Libres Coopérative je belgijska kompanija koja radi na polju geomatike i razvoja softvera otvorenog koda. Redovno organizujemo QGIS obuku u našoj kancelariji ili u prostorijama naših klijenata. Također nudimo podršku korištenju QGIS -a i/ili razvoju QGIS dodataka.

Clear Mapping Co (sa sjedištem u Penrynu, Cornwall, UK) je nagrađivano međunarodno savjetovanje u oblasti kartografskog dizajna. Izrađujemo lijepe mape za poboljšanje efikasnosti na radnom mjestu sa uključivim i održivim fokusom na dizajn. Naši prilagođeni tečajevi GIS obuke u QGIS -u i drugom GIS softveru nude priliku za poboljšanje efikasnosti u rukovanju prostornim podacima i stvaranju jasnih karata.

exeGesIS SDM Ltd ima sjedište u Južnom Walesu u Velikoj Britaniji. Nudimo podršku i kurseve obuke na različitim nivoima, javnim ili privatnim, zajedno s radionicama po mjeri i mentorstvom. Možemo vam pomoći pri prijelazu s alternativnih GIS rješenja na QGIS, kao i razvoju dodataka koji odgovaraju vašim poslovnim zahtjevima.

FOSS Akademija (sa sjedištem u Bonnu, Njemačka) FOSS Akademija je institut za obuku i nudi različite kurseve, od lekcija za početnike do naprednih kurseva programiranja pythona za QGIS, kao i besplatne mrežne webinare o temama vezanim za QGIS. Institutom upravlja WhereGroup.

GeoICON (sa sjedištem u Singapuru i operacijom u jugoistočnoj Aziji) radi sa vladinim organizacijama više od 10 godina i nudi cijeli niz usluga u vezi sa QGIS -om, uključujući obuku i komercijalnu podršku.

Rješenja za geoprostornu obuku (Dr Nick Bearman) sa sjedištem u Cornwallu u Velikoj Britaniji i pružaju prilagođene kurseve GIS obuke za istraživače, stručnjake i studente. Koristim QGIS u većem dijelu svog savjetodavnog rada i podučavam širok spektar predmetnih stručnjaka kako razumjeti i raditi s prostornim podacima. Mogu pokazati vašoj istraživačkoj grupi ili organizaciji kako možete izvući više iz svojih prostornih podataka i kako stvoriti bolje karte za svoje publikacije ili koristiti prostorne podatke za poboljšanje rezultata.

Gispo Ltd (sa sjedištem u Finskoj). Naše korisnike vodimo do uspjeha u isporuci pragmatičnih rješenja za strateške odluke korištenjem geoprostornog softvera otvorenog koda. Nudimo QGIS, GeoServer, PostGIS, GDAL/OGR i MapProxy podršku i obuku za naše klijente. Čvrsto vjerujemo da otvorenost pobjeđuje.

gis3w (sa sjedištem u Italiji) pruža usluge geografskih i ekoloških analiza te podršku i pomoć pri qgis -u.

GKG Kassel, Njemačka (Dr.-Ing. Claas Leiner) pruža obuku, usluge i podršku oko besplatnih geografskih informacijskih sistema QGIS, GRASS, SAGA i PostGIS, kao i upravljanje prostornim podacima, analizu i kartografiju.

Geolis (sa sjedištem u Luzernu, Švicarska) pruža komercijalne GIS savjete, podršku i obuku u QGIS -u.

Institut za tehnologiju mapiranja (sa sjedištem u Austinu, Teksas, SAD) pruža podršku i obuku za QGIS i PostGIS.

Karttakeskus (sa sjedištem u Finskoj) pruža komercijalnu podršku i obuku za QGIS i otvorene prostorne podatke.

Mierune Inc. (sa sjedištem u Japanu) pruža komercijalno savjetovanje, obuku, podršku i prilagođavanje QGIS i FOSS4G softvera. Također organiziramo praktične radionice s ovim alatima. Molimo kontaktirajte nas ako imate pitanja u vezi razvoja sistema, vizualizacije ili analize koja uključuje podatke o pozicioniranju.

nGNUity.net- Zagovornik FOSS-a sa Filipina koji pruža komercijalne GIS usluge, obuku i savjetovanje za QGIS, pomoć u vizualizaciji prostornih podataka lokalnim vlastima, neprofitnim organizacijama, istraživačkim agencijama i grupama zajednice od 2007. Nudi razne usluge prikupljanja i mapiranja mobilnih podataka koristeći softverski niz Open Data Kit / KoBo Toolbox.

North River Geographic Systems, Inc je geoprostorna konsultantska firma sa sjedištem u Sjedinjenim Državama. Pružamo podršku za QGIS, PostGIS i čitav niz softvera FOSS4G. NRGS takođe pruža podršku za vašu organizaciju zasnovanu na projektima, uključujući podršku za podatke, kartografiju i analizu.

OpenGeoLabs s.r.o (sa sjedištem u Pragu, Češka Republika) nudi kurseve obuke (koristeći zaštitni znak GISMentors), tehničku podršku i prilagođeni razvoj softvera otvorenog koda za geoprostor.

Soluciones en Tecnologías de Información Geográfica (SOLTIG) (sa sjedištem u Kostariki) pruža obuku, podršku, savjetovanje i programiranje za QGIS i druge FOSS aplikacije.

SunGIS (sa sjedištem u Valmieri, Latvija) pruža komercijalnu podršku, savjetovanje, obradu podataka i prilagođeno programiranje za QGIS, GRASS GIS i FOSS GIS SDI rješenja.

Le Groupe SYGIF Inc. (sa sjedištem u Rimouskom, Quebec, Kanada) specijaliziran je za razvoj informacijskih tehnologija (GIS) usmjerenih na integrirano upravljanje zemljištem. Kompanija razvija i podržava komplementarne alate za QGIS i MapServer, a također ima i priznanje kompanije ESRI kao programera i prodavača njihovih proizvoda.

TAXUS IT (sa sjedištem u Warszawi, Poljska) pruža komercijalne GIS usluge te podršku i obuku u QGIS -u i GRASS -u.

Terraplan (Schallstadt/Freiburg, Njemačka) pruža obuku i savjetovanje o GIS -u za QGIS. Fokus je na savjetovanju za općine, od uvođenja QGIS -a do potpune zamjene drugih komercijalnih GIS rješenja.

Terrestris (Bonn, Njemačka) pruža komercijalne usluge i obuku za QGIS.

thinkWhere (Stirling, Škotska) thinkWhere postoji nezavisna konsultantska kompanija za GIS u Velikoj Britaniji. Pružamo širok raspon inovativnih GIS proizvoda i usluga, uključujući “Location Center” (hostovani Cloud-based GIS izgrađen od tehnologija otvorenog koda). Kao QGIS web mjesto, naš tim geoprostornih stručnjaka svakodnevno koristi QGIS i pruža QGIS podršku korisnicima. Takođe vodimo redovne kurseve obuke za QGIS i PostGIS.

WhereGroup (Bonn, Njemačka) WhereGroup pruža cijeli spektar usluga u vezi s QGIS -om, uključujući prilagođeno programiranje, komercijalnu podršku i obuke.

WIGeoGIS WIGeoGIS (sa sjedištem u Münchenu, Njemačka i Beč, Austrija) nudi širok raspon QGIS dodataka posebno dizajniranih za geomarketing i prostornu poslovnu analizu zajedno s podacima o tržištu. Sljedeće funkcionalnosti obuhvaćene su dodacima: paketno geokodiranje i pretraživanje adresa, proračun izohrona vremena putovanja i matrica udaljenosti, Huff-gravitacijski modeli i planiranje teritorija. In addition to the plugins WIGeoGIS also offers webgis, commercial training, market data and support for QGIS.


Pogledajte video: 15. Słowniki - Programowanie od 0 z Pythonem