Mer

Python-skript for beregning av arealet til en polygon


Jeg leter etter en pythonkode for denne polygonen. Jeg må beregne arealet inne i denne polygonen, og jeg er ny i programmeringen. (Veldig nytt). Kan noen hjelpe meg med dette? Jeg må bruke en pythonkode for dette, jeg kan ikke bruke noen andre midler.


Her er et eksempel på hvordan du kan få området ved hjelp av en søkemarkør:

polygon_layer = "C:  Polygon.shp" med arcpy.da.SearchCursor (polygon_layer, ("OID @", "SHAPE @")) som søkemarkør: for rad i søkemarkør: oid = rad [0] geometri = rad [ 1] skriv ut "OID {0}: areal er {1}". Format (oid, geometry.area)

importer os fra osgeo importer ogr daShapefile = r "C:  Users  new1.shp" #path hvor formfilen din er tilstede driver = ogr.GetDriverByName ('ESRI Shapefile') dataSource = driver.Åpne (daShapefile, 1) # 0 betyr skrivebeskyttet. 1 betyr skrivbar. # Kontroller om shapefile er funnet. hvis dataSource ikke er: skriv ut 'Kunne ikke åpne% s'% (daShapefile) ellers: skriv ut 'Åpnet% s'% (daShapefile) lag = dataSource.GetLayer () featureCount = layer.GetFeatureCount () utskrift "Antall funksjoner i% s:% d "% (os.path.basename (daShapefile), featureCount) print"  n "new_field = ogr.FieldDefn (" Area ", ogr.OFTReal) new_field.SetWidth (32) new_field.SetPrecision (2) # lagt til linje for å angi presisjonslag.CreateField (new_field) for funksjon i lag: geom = feature.GetGeometryRef () area = geom.GetArea () print area feature.SetField ("Area", area) layer.SetFeature (feature)

"denne koden her finner området til polygonene som er tilstede i formfilen din og legger til et felt med navnet" Areal "i databasen din med verdien av området til hver polygon


det samme som det aksepterte svaret, men det er en en-liner.

area = arcpy.da.FeatureClassToNumPyArray (polygon_layer, 'SHAPE @ AREA') [0] [0]

for flere hvis du vil ha totalt areal

fra arcpy import da total_area = sum (i [0] for i i da.FeatureClassToNumPyArray (water_feature, 'SHAPE @ AREA'))


Python-program for å beregne arealet av todimensjonale former

Dette er det første miniprosjektet jeg har fullført av meg selv med Python 2.7. Jeg skrev et enkelt program som beregner arealet til forskjellige todimensjonale former, og det fungerer. Jeg vil vite hva du synes om det, og vil også vite hvordan det kan forbedres, og hvis jeg gjorde noe galt, så dette er koden min:

Det er en ting til som jeg vil legge til, men ikke vet hvordan, jeg vil gjøre det til en uendelig løkke når brukeren skriver inn et annet svar enn "ja" eller "nei" til "vil du beregne arealet av en annen form? " , til brukeren skriver inn det riktige svaret som er ja eller nei, da går sløyfen og den beregner igjen, noen tips?


Hvordan sjekke om punktet er inne i en polygon? ¶

Beregningsmessig gjøres det ofte å oppdage om et punkt er inne i en polygon ved hjelp av en spesifikk formel kalt Ray Casting-algoritme. Heldigvis trenger vi ikke å lage en slik funksjon selv for å utføre Point in Polygon (PIP) spørringen. I stedet kan vi dra nytte av Shapelys binære predikater som kan evaluere de topolokale forholdene mellom geografiske objekter, slik som PIP slik vi er interessert her.

Det er i utgangspunktet to måter å gjennomføre PIP på Shapely:

  1. ved hjelp av en funksjon kalt .within () som sjekker om et punkt er innenfor en polygon
  2. ved hjelp av en funksjon kalt .contains () som sjekker om en polygon inneholder et punkt

Merk: selv om vi snakker her om Punkt i Polygon-operasjon er det også mulig å sjekke om en LineString eller Polygon er inne i en annen Polygon.

Okey, så vi kan se at det første punktet ser ut til å være inne i polygonen, og det andre ikke & # 8217; t.

Dermed resulterer begge måter å kontrollere romlig forhold på samme måte.

Hvilken bør du bruke da? Vel, det kommer an på:

hvis du har mange poeng og bare en polygon og prøver å finne ut hvilken av dem som er inne i polygonet:

  • du må gjenta punktene og sjekke om gangen innenfor() den angitte polygonen

hvis du har mange polygoner og bare ett punkt, og du vil finne ut hvilken polygon som inneholder poenget

  • du må klø over polygonene til du finner en polygon som inneholder () det angitte punktet (forutsatt at det ikke er noen overlappende polygoner)

Krysse¶

En annen typisk geospatial operasjon er å se om en geometri krysser eller berører en annen. Forskjellen mellom disse to er at:

  • hvis objekter krysser hverandre, må grensen og det indre av et objekt krysse på noen måte med den andres.
  • Hvis et objekt berører det andre, er det bare nødvendig å ha (i det minste) et enkelt punkt av grensene til felles, men interiøret må IKKE krysses.

Det gjør de, og vi kan se dette ved å plotte funksjonene sammen

Dermed fortsetter linjen_b fra samme node ((1,1)) der linje_a slutter.

Men hvis linjene overlapper hverandre, berører de ikke på grunn av den romlige forholdsregelen, som vi kan se:


Python

Python-omslaget er nyttig for Python-utviklere som ønsker å integrere what3words Public API sømløst i sine Python-applikasjoner, uten bryet med å måtte administrere API-anropene på lavt nivå selv.

What3words API er et raskt, enkelt grensesnitt som lar deg konvertere 3 ordadresser som ///index.home.raft til bredde- og lengdegradskoordinater som (-0.203586, 51.521251) og omvendt. Den har en kraftig autosuggest-funksjon, som kan validere og autokorrigere brukerinngang og begrense den til bestemte geografiske områder (dette driver søkeboksen på kartområdet vårt). Den lar deg be om en del av what3words-rutenettet (som kan be om som GeoJSON for enkel visning på kart på nettet), og be om en liste over alle språk som støttes av what3words. For avanserte brukere kan autosuggest brukes til å etterbehandle taleutdata. Se lenker til venstre for å navigere.

Alle koordinatene er breddegrad, lengdegrad i standard WGS-84 (som ofte brukt over hele verden i GPS-systemer). Alle breddegrader må være i området fra -90 til 90 (inkludert).


1 Svar 1

Bare vær oppmerksom på at polynomet er $ frac$ har røtter $ operatorname(2 pi k / 8) $ for $ k i <1, ldots, 7 > $.

Verdien er altså arealet til det vanlige åttekantet minus arealet til en trekant dannet av to tilstøtende sider.

Området til en åttekant (ved å dele i trekanter) med radius $ 1 $ er $ 8 cdot frac <1> <2> cdot frac < sqrt <2>> <2> = 2 sqrt <2> $.

Det er et enhets kvadrat inne i en åttekant. Fjerning av torget avslører $ 4 $ små trekanter. Dermed er arealet til en liten trekant $ frac <2 sqrt <2> - 1> <4> = frac < sqrt <2>> <2> - frac <1> <4> $.


Python-skript for beregning av arealet til et polygon - Geographic Information Systems

Progresjonsti for en GIS-analytiker som ønsker å bli dyktig i å bruke Python for GIS: fra lærling til guru

Dette er et pågående arbeid

Dette er et forsøk på å gi en strukturert samling ressurser som kan hjelpe en GIS-profesjonell til å lære hvordan man bruker Python når man arbeider med romlig datahåndtering, kartlegging og analyse. Ressursene er organisert etter fremdriftskategori, så i utgangspunktet skal alle kunne lære noe nytt underveis.

Ressursene vil omfatte bøker, websider og blogginnlegg, online kurs, videoer, Q / A fra GIS.SE, lenker til kodebiter og noen målinger før leggetid.

Ressursene vil være gjeldende både for brukere av Esri-programvare og GIS-profesjonelle med åpen kildekode.

Du skal kunne skrive korte enkle skript i ren Python uten forbindelse til GIS. For å lære det grunnleggende om Python, kan du finne massevis av ressurser på nettet, for eksempel CodeAcademy, Lær Python den harde veien, Dykke inn i Python, A Whirlwind Tour of Python, og mange andre bøker fra Python.org og denne gratis programmeringsboken GitHub repo .

Hvis du ikke vil lære Python på denne måten og heller vil innhente hvordan Python kan brukes til GIS:

Gjennomgår disse bøkene kan være tilstrekkelig til å lære alt du måtte trenge hvis du er henholdsvis Esri eller en åpen kildekode-GIS-bruker.

  • Esri instruktørledet kurs Introduksjon til geoprosesseringsskript ved hjelp av Python
  • Esri gratis nettkurs Python for alle
  • Esri nettkurs Grunnleggende om Python (for ArcGIS 10)
  • Penn State gratis nettkurs GIS programmering og automatisering

Se etter videoer på websiden til Esri Video, og søk etter Python, og sorter etter siste. Et eksempel på URL.

  • Esri-video Arbeide med funksjonsdata ved hjelp av ArcPy
  • Esri-video ArcMap and Python: Closing the VBA Gap
  • Esri-video Python: Komme i gang 2014
  • Esri-video Python: Utvikling av verktøy for geoprosessering
  • Esri-video Python: Komme i gang 2013

På dette tidspunktet bør du kunne:

  • skriv noen enkle skript enten ved hjelp av arcpy site-package eller ogr / gdal / pyqgis biblioteker
  • rapporter informasjon om GIS-ressursene dine (dataformat, geometritype, dataskjema, romlig referanse)
  • skriv kode for å ringe ArcGIS geoprosesseringsverktøy (inspectig arcpy.Result objekt returnert) / ogr geometry methods / PyQGIS tools from Python code
  • utføre en operasjon på flere datasett i batch-modus ved hjelp av arcpy / ogr listefunksjoner
  • lese og oppdatere attributter og forsterkningsgeometri av funksjoner ved hjelp av arcpy.da-markører eller ogr-datakildemetoder
  • lage og betjene arcpy.Geometry () objekter (få tilgang til deres egenskaper og metoder) eller ogr.Feature ()
  • lage en ArcGIS verktøykasse med et enkelt skriptverktøy som utfører en Python-kildefil
  • rapporter informasjon om kartlag (f.eks. datakilder, ødelagte baner, definisjonsspørsmål) i et ArcMap-kartdokument (.mxd) ved hjelp av arcpy.mapping-modul eller pyqgis-modul

På dette tidspunktet bør du være kjent med:

  • variabler av forskjellige datatyper (numerisk, streng, boolsk, dato osv.)
  • datastrukturer av forskjellige typer (liste, tuple, ordbok, sett)
  • for og mens sløyfer, if-elif-else blokkerer
  • import av eksterne Python-moduler og pakker (f.eks. import OS)
  • funksjoner og hvordan de fungerer (f.eks. inputargumenter og returuttalelse)
  • lese / skrive tekstfiler ved hjelp av den innebygde åpne funksjonen
  • lese / skrive .csv-filer ved hjelp av csv-modulen og unicodecsv-modulen

Denne delen inneholder eksempler på oppgaver som du kanskje trenger å skrive på et tidspunkt. Implementering av disse oppgavene i Python-kode vil være et godt tegn på at du har mestret det grunnleggende om Python for GIS.

  • få en liste over feltnavn av datatype i en filgeodatabase-funksjonsklasse
  • kopier flere shapefiler til en filgeodatabase samtidig
  • projiser alle rasters i en mappe på nytt og kopier resultatene til en ny mappe
  • oppdater datakilder for lag i et kartdokument og lagre et nytt kartdokument
  • skriv til en .txt- eller en .csv-filinformasjon om GIS-ressursene dine
  • Lær om forskjellige Python IDEer og finn ut hvilken du liker best. Mange starter med gratis PyScripter og går deretter til noe annet:
    • SÅ spørsmål Hvilken IDE skal jeg bruke for Python?
    • Sjekk PyCharm, WingIDE, Eclipse PyDev, Visual Studio-kode, Python-verktøy for Visual Studio, eller redigeringsprogrammer med rik tekst som Sublime med Python-støtte
    • Sjekk Esri-blogginnlegget Velge riktig Python Integrated Development Environment

    Nå, for å komme i gang med Python-utvikling, er Visual Studio Code med Python-utvidelse (r) uten tvil det beste valget. Det er helt gratis, du kan installere det på hvilken som helst av dine fysiske eller virtuelle maskiner, og den har god støtte for Python-utvikling. Å velge mellom kommersielle IDEer, Wing IDE eller PyCharm vil være et godt valg.

    Lær om VCS som Git for å administrere kildekoden. BitBucket av Atlassian og GitLab tilbyr gratis private lagringssteder og GitHub tilbyr gratis offentlige lagringssteder (du må betale for å opprette private).

    • Finn ut om det er en VCS-løsning distribuert internt i organisasjonen din, for eksempel Microsoft TFS, som du kan bruke til å sjekke inn koden
    • Hvis du vil dykke dypere inn i Git, kan du lese Git Pro-boken gratis online

    Lær om typetips i Python. Det er et utmerket blogginnlegg om hvordan typetips brukes i PyCharm og en hjelpeside fra Wing IDE-folk. Finn ut om Python IDE støtter statisk kodeanalyse, og begynn å bruke typetips (med støtte både for Python 2.7 og 3.5+).

    Lær hvordan du kjører andre Python-programmer eller kjørbare filer fra programmet ditt ved hjelp av underprosessmodul. Dette er praktisk når du trenger å kjøre et .exe-program midt i Python-programmet. Dette er ofte tilfelle når du bruker arcpy / ogr-kode i begynnelsen av skriptet, men da må kjøre ArcObjects-konsollappen / kompilert C ++ app for å få gjort noe før du kan fortsette videre.

    • Esri-blogg Genererer en valgliste fra et felt for et tilpasset skriptverktøy og Python og GIS-blogg 2
    • Konverter ArcGIS skriptverktøykasse (.tbx) til Python verktøykasse (.pyt) med tbxtopyt
    • Esri blogg Slik feilsøker du Python-verktøykasser i 3 enkle trinn
    • Esri blogg Feltkartlegging og Python-skripting
    • Esri ArcPy teamblogg
    • Praktiske funksjoner for arcpy i repo arcapi
    • Eksempel på ArcGIS verktøykasse SampleArcPyMappingScriptTools_10_v1 for arbeid med arcpy.mapping (20+ verktøy)
    • Lær hvordan du bruker pip for å administrere Python-pakker
    • Lær virtualenv og venv for å administrere henholdsvis Python 2 for Python 3-miljøer
    • Lær tox og retox for å kjøre testene / programmene dine på flere Python-installasjoner (kan være nyttig når du bygger skriptverktøy som skal brukes både i ArcGIS Desktop med Python 2.7 og ArcGIS Pro med Python 3.x eller QGIS med Python 2.7 og QGIS med Python 3 .x)
    • Lær R-ArcGIS bridge for å kombinere Python og R-kode

    På dette tidspunktet bør du kunne:

    • automatiser kartproduksjon ved hjelp av arcpy.mapping med datadrevne sider eller pyqgis
    • administrere .pdf-filer (f.eks. ombestilling, sammenslåing, splitting) ved hjelp av arcpy eller rene Python-pakker som pypdf2
    • eksporter ArcMap kartdokumentlayout til forskjellige filformater som .png og .pdf
    • oppdater tekstinnholdsinnhold i layout av et ArcMap-kartdokument
    • kjøre SQL-spørsmål fra Python ved hjelp av arcpy.ArcSDESQLExecute () eller GDALDataset :: ExecuteSQL ()
    • bruk FieldInfo-, FieldMap- og FieldMappings-klasser fra arcpy eller ogr.FieldDefn () for å administrere endringer i dataskjemaet
    • tilpasse tilpasset ArcGIS-skriptverktøyoppførsel ved hjelp av ToolValidator-klassen eller bygg enkle QGIS-plugins
    • begynn å bruke Python-verktøykasser og Python-tillegg i ArcGIS når det er fornuftig
    • feilsøk arcpy -drevet kode ved hjelp av geoprosesseringsmeldinger
    • skrive mindre enhetstester for GIS-arbeidsflyter
    • håndtering av JSON-data i Python og arcpy og GeoJSON for ogr
    • lese Excel-filer ved hjelp av xlrd Python-pakke
    • generere enkle Excel-filer fra datasett med Python og xlsxwriter-pakke eller xlwd
    • ved hjelp av arcpy.da.Walk () og os.walk () for å krysse mapper med GIS datasett rekursivt

    På dette tidspunktet bør du være kjent med:

    • installere Python-pakker ved hjelp av pip
    • PYTHONPATH miljøvariabel og konsept for baner og kjøring av Python-programmer fra cmd
    • Python 3 for å kunne skrive kode som senere blir portet til ArcGIS Pro / QGIS 3.x
    • Python PEP-8 stilguide
    • samlingsmodul datastrukturer som defaultdict, namedtuple, Counter
    • liste, ordbokforståelser, og settforståelser + mengde teorioperasjoner
    • å oppregne sekvenser ved hjelp av den innebygde opptellingsfunksjonen
    • skrive egne funksjoner og håndtere argumentene med * args og ** kwargs og komfortfunksjoner
    • tilgang til DBMS-databaser ved hjelp av Python
    • arbeider med diskbaserte databaser som SQLite fra Python
    • ved hjelp av ikke-latinske tegn i kildefilen, håndtering av Unicode, koding av shebang
    • Python unntak og prøv / unntatt blokk
    • Python-sporingsmodul
    • dobbel utpakking med funksjonsanrop
    • sende e-post med Python
    • tilgang til ftp-nettsteder med Python ved hjelp av ftplib-modulen
    • kjører Python-filer med cmd og en oppgaveplanlegger
    • zippe mapper og filer med Python og lese / pakke ut arkivfiler (bruker zipfile-modul for .zip-filer og tarfile for .tar- og .tar.gz-filer)
    • sende SMS ved hjelp av Python og Twilio
    • logge Python-programmene dine (ved hjelp av loggmodulen) - praktisk å bruke i stedet for å skrive utsagn

    Lær hvordan du bruker ArcObjects fra Python:

    • GIS.SE Få tilgang til ArcObjects fra Python?
    • GIS.SE Retningslinjer for bruk av ArcObjects fra Python
    • Esri-video som utvider Python ved hjelp av C ++ og ArcObjects
    • Esri spilte inn live-training seminar om ArcObjects
    • Esri Hjelpeside Læring ArcObjects hjelper deg med å bestemme hvilke ArcObjects som gir funksjonaliteten som kreves av din tilpasning
    • Esri Hjelpeside Les OMD-er gir en beskrivelse av diagramnotasjonen som brukes på ArcObjects-objektmodelldiagrammer (OMD-er)
    • Blogginnlegg Få tilgang til ArcObjects i Python med veiledning om ArcObjects

    Lær hvordan du får tilgang til ArcGIS Pro .NET-biblioteker fra Python:

    • Lær det grunnleggende om C # eller VB.NET
    • Lær å bruke pythonnet-pakken
    • Lær å bygge et klassebibliotek for å få tilgang til metodene fra Python ved hjelp av clr
    • Lær hvordan du bygger en konsollapp som vil innebygde Pro-biblioteker i Pro .NET SDK Hjelp

    Lær om andre GIS-pakker:

    • Gå gjennom en omfattende liste over viktige Python Geospatial Libraries (også tilgjengelig på denne GitHub-siden)
    • Se serien av innspilte workshops om bruk av GIS-pakker med åpen kildekode: Geospatial data i Python: Database, Desktop og Internett
    • Se serien med ulike samtaler om bruk av GIS-pakker med åpen kildekode: Geospatial Python-samtaler

    Lær om hvordan du bygger skrivebords-GUI-applikasjoner ved hjelp av Tkinter, WxPython, PyQt, PySide eller Kivy og deretter legge dem inn i ArcGIS eller bare la dem være klar over romlige datasett:

    Lær om beregningsgeometri og finn ut hvordan den kan hjelpe deg i arbeidet ditt. Kanskje du kan bruke et verktøy som ikke er tilstede på skrivebordet GIS, eller du leter etter noe som fungerer raskere. Det er to hovedbiblioteker for beregningsgeometri, og begge ble skrevet i C:

      . Python-innpakningen er tilgjengelig via scipy.spatial-modul, et eksepsjonelt verktøy for alle som arbeider med geometriske data. . Dens Python-bindinger genereres med SWIG. CGAL er litt vanskelig å installere og kompilere, men gir mye rikere funksjonalitet.
  • Se Computational Geometry in Python - PyCon 2016 og Python Powered Computational Geometry for å lære mer om henholdsvis qhull og CGAL.
  • Lær om bruk av Python med FME Desktop:

    • Finn ut hvordan du kjører en FME-arbeidsbenk fra Python
    • Finn ut hvordan du ringer til Python-kode fra en FME-arbeidsbenk ved hjelp av PythonCaller-transformator
    • Finn ut hvordan du behandler data uten å bruke noen FME-arbeidsbenk ved hjelp av FME Objects Python API

    Lær ArcGIS REST API:

    • Lær forespørselsmodul
    • ArcGIS verktøykasse ArcGIS Server Administration Toolkit - 10.1+
    • Lær ArcGIS Python API for å administrere ArcGIS Online / Portal-organisasjoner og ArcGIS Server-ressurser

    Lær om å administrere og behandle større romlige datasett ettersom ytelsen vil ha betydning:

    • Lær profileringsteknikker for å finne ut hvilken kode det tar mest tid å utføre (cProfile)
    • Lær benchmarking for å sammenligne utføringstid for funksjoner som gjør det samme ved hjelp av forskjellige verktøy (for eksempel å lete etter den raskeste måten å telle poeng i polygoner)
    • Les Esri-bloggen Få tilgang til flerdimensjonale vitenskapelige data ved hjelp av Python
    • Lær hvordan du bruker multiprosesseringsmodul med ArcGIS på Esri-blogginnlegget Multiprocessing with ArcGIS - Approaches and Considerations (Del 1)
    • Les Esri-bloggen Bli vellykket å legge store, komplekse datasett i geoprosessering

    Lær om bruk av Python for administrasjon og analyse av Big Data

    • Lær om PySpark som lar deg bruke Spark i Python, samt forskjellige geospatiale biblioteker som lar deg gjøre geospatial analyse ved hjelp av Spark: magellan, spatialspark og GeoSpark
    • Se en video som viser bruken av Spark til stor dataanalyse: Storskala Geospatial Analytics med Python, Spark og Impala
    • Les en artikkel som viser bruken av Hadoop og Presto for stor dataanalyse hos Uber: Spørre planeten: Geospatial big data analytics at Uber
    • Lær om Presto geospatiale funksjoner og Presto Python-klienten
    • Lær om Omnisci geospatial Map-d-kjerne og dens Python JayDeBeApi
    • Lær om Geomesa og integrasjonen med Spark Python API for tilgang til data i GeoMesa datalagre
    • Bli kjent med Esri Geometry API for Java ettersom den brukes av mange Java-baserte Big Data-plattformer som gir en slags geospatial støtte

    Lær om Esri File Geodatabase C ++ API med .NET-bindinger for å kunne jobbe med filgeodatabaser programmatisk ved hjelp av C ++ eller. NET

    • Lær hvordan du bruker ESRI File Geodatabase (OpenFileGDB) og ESRI File Geodatabase (FileGDB) GDAL-drivere for å koble til Esri file geodatabase programmatisk eller ved hjelp av åpen kildekodeverktøy
    • Utforsk et eksempel på bruk av GDALDataset :: ExecuteSQL () i en PyQT desktop SQL-editor GDBee

    Lær hvordan Python brukes i bedriften som ser på Enterprise-programvaren med Python O'reilly-videokurs

    Lær IPython og konseptet med reproduserbar forskning:

    Lær om bruk av Python for webutvikling:

    • Lær kolbe og django. Begynn med kolbe og bare flytt deretter til django
    • Lær geodjango å servere romlige datasett på nettet. Les gjennom lysbildene ArcGIS JavaScript Plus Django tilsvarer dynamisk webapp

    Lær om nlpk Python-pakken for å arbeide med menneskelige språkdata (f.eks. Parsing av adressedata)

    Lær om regex Python-pakken for å jobbe med vanlige uttrykk i Python (f.eks. Å finne adresser i et bestemt format)

    Lær om difflib og Levenshtein C-utvidelse for å gjøre fuzzy string matching (for eksempel å finne nærmeste adressestreng i registret for en inngangsadresse)

    Lær Selenium Python-pakken for å kunne automatisere nettapptesting. Les dokumentene for Python-bindinger her

    Lær om numerisk databehandling og datavitenskap:

    • Installer Anaconda og lær om conda. Dette er nyttig ettersom Python i ArcGIS Pro er implementert ved bruk av et conda-miljø
    • Installer Enthought Canopy vitenskapelig Python-distribusjon og lær hvilke verktøy den har
    • Lær numerics, vitenskap og data med Python med scipy-forelesninger
    • Lær hva scipy.spatial kan gjøre for GIS-arbeidet ditt
    • Les Python for dataanalyse og Python for Computational Science and Engineering (gratis bok)

    Lær om å koble til forskjellige DBMS fra Python:

    • For Microsoft SQL Server - pymssql
    • For Oracle - cx_Oracle
    • For PostgreSQL - psycopg2 eller sqlalchemy

    Lær om bruk av maskinlæring med Python:

    • Begynn å bruke scikit-learning for forskjellige GIS-relaterte operasjoner som dataklassifisering og regresjon, samt scikit-image for bildebehandling (f.eks. Satellittbildegjenkjenning)

    Lær om bruk av datasyn (CV) med Python for å gjøre bildebehandling:

    Lær om hvordan du oppretter og analyserer HTML:

    • Parse og konstruer HTML-sider med Python ved hjelp av BeautifulSoup. Å ha denne ferdigheten ville være nyttig når en webside skulle søkes etter informasjon og lastes inn i et GIS-datasett, eller når du bygger HTML-rapporter
    • Lær hvordan registrantpakken rapporterer informasjon om Esri-geodatabaseinnholdet
    • Lær om nettskraping ved hjelp av Scrapy

    Lær om hvordan du oppretter og analyserer XML:

    Lær om kildekodetesting, lo og refactoring:

    • Lær unittest innebygd modul og mer avansert pytest-rammeverk
    • Lær dekning.py-modulen for å lage kodedekningsrapporter
    • Lær hypotesen for å skrive kraftigere enhetstester
    • Lær Python linters som pylint, flake8 og pyflakes8 for å holde koden ryddig
    • Lær om Python-stilguider, for eksempel Google-stilguide. Dette vil være spesielt nyttig når du begynner å jobbe i et team
    • Lær om mest omfattende Python linter wemake-python-styleguide. Det er bare et flake8-plugin, men det kombinerer brudd fra mange andre flake8-plugins
    • Lær Python-formatere slik yapf og autopep8 for automatisk å formatere kildekoden for å tilpasse seg en stil. Det er best å kjøre autopep8 med aggressivt alternativ aktivert for å formatere koden og deretter kjøre yapf på resultatkoden
    • Lær SonarPython statisk kodeanalysator for å finne kodelukt og refactoring-alternativer. Mange av reglene fra SonarPython er implementert i wemake-python-styleguide
    • Lær om Python-grensesnittfiler (PEP-484) og hvordan du bruker dem til å hjelpe din Python IDE til å utføre statisk kodeanalyse og gi bedre intelligens

    Begynn å lete etter å gjøre visse ting utenfor GIS-applikasjoner ved hjelp av ren Python, for eksempel ved bruk av pandaer

    Lær beste fremgangsmåter for å organisere konfigurasjon og innstillinger for en større arbeidsflyt der du trenger å holde konfigurasjonsverdiene atskilt fra forretningslogikken (f.eks. Ved hjelp av json, ConfigParser eller ved hjelp av OOP-konstruktører)

    Lær om å utvide Python med C eller C ++:

    • Lær hvordan du lager en C ++ utvidelse for Python (.pyd kompilert fil som kan importeres som en vanlig modul til Python-modul)
    • Gå gjennom kurset Grensesnitt med andre språk fra Enthought for å begynne å bygge Python-innfødte moduler
    • Lær og sammenlign forskjellige alternativer for innpakning av C ++ - kode for Python, for eksempel ved hjelp av Boost, SWIG, native Python C API og pybind11. pybind11 er den mest brukervennlige

    På dette tidspunktet bør du kunne:

    • utføre ArcObjects-kode fra Python ved hjelp av komptypebiblioteket
    • eksporter dataene fra tabeller og funksjonsklasser til Excel med tilpasset formatering ved hjelp av xlsxwriter
    • generere PDF-filer fra bunnen av som inneholder kartbilder, egendefinerte diagrammer og tabeller ved hjelp av reportlab
    • dele, slå sammen, beskjære og transformere .pdf-dokumenter ved hjelp av pypdf2
    • generere .pdf-rapportfiler ved hjelp av ArcGIS-rapportmaler (.rlf) og arcpy
    • generere grafer ved hjelp av arcpy.Graph, arcpy.GraphTemplate med grafmalfiler (.tee) og Make Graph GP-verktøy
    • utføre grafteori-operasjoner på lineære datasett ved bruk av networkx (f.eks. punkt-til-punkt-ruting)
    • plott geodata med Matplotlib (både vektor og raster)
    • bruk numpy og pandaer for å manipulere attributtabellen for romlig datasett
    • bruke forespørsler og / eller arcrest-pakke for å få tilgang til ArcGIS Server-nettstedet, ArcGIS Online / Portal-organisasjoner gjennom ArcGIS REST API
    • ring FME arbeidsbenker fra Python
    • få tilgang til lesere og forfattere i FME med fmeobjects
    • lese, endre og skrive et georeferert bilde
    • generere nyttig informasjon om et punktsett (de fleste isolerte punkter, et par to lengste punkter osv.)

    På dette tidspunktet bør du være kjent med:

    • bygge GUI-applikasjoner på skrivebordet ved hjelp av PyQt, PySide eller Kivy (f.eks. visualisere funksjonene til en shapefile i et applikasjonsvindu)
    • bidra til åpen kildekode-prosjekter som buestøtte eller geopandaer som rapporterer feil eller henter inn ny funksjonalitet
    • skape nye conda miljøer og installere forskjellige pakker i spesifikke miljøer
    • refactoring innpakning av koden i funksjoner, moduler og pakker
    • OOP grunnleggende og lage egne klasser
    • kompilere en enkel Python-utvidelsesmodul (.pyd) og skriv en .pyi-grensesnittfil for å gi intelligensen til Python IDE

    Denne delen inneholder eksempler på oppgaver du kanskje trenger å skrive på et tidspunkt. Å implementere disse oppgavene i Python-kode vil være et godt tegn på at du har mestret de avanserte konseptene til Python for GIS.

    • skjul / vis kartrutenett med dataramme i et kartoppsett før du eksporterer kartet i et kartdokument ved hjelp av arcpy-pakke og ArcObjects
    • oppdater etikettens tekst til en skaleringslinje i et kartoppsett ved hjelp av rene ArcObjects
    • generere et tjenesteområde (kjøretid) polygon for et vilkårlig punkt på et gatenettverk lagret som en formfil ved hjelp av nettverkx
    • finn ut den raskeste romlige sammenføyningen - ArcGIS Spatial Join GP-verktøy, rtree i PostGIS, SQL Server ST Inneholder eller formet Python-pakke
    • lage en ny .csv-fil fra en eksisterende ved å filtrere visse rader ved hjelp av pandaer
    • klassifisere punktsettfunksjoner i klynger ved hjelp av scikit-lær for å etterligne noen av ArcGIS Spatial Statistics-verktøyene
    • skriv et program som vil beregne arealet til en innsjø som automatisk gjenkjennes fra et satellittbilde
    • bygge ved hjelp av PyQt et GUI-program for å utføre SQL-spørsmål mot filgeodatabaser

    Få en oversikt fra oven av bildet

    Greit, la oss se denne koden i aksjon.

    Åpne et skall og utfør følgende kommando:

    Du bør se ovenfra og ned av notekortet, som nedenfor:

    Figur 1: Bruk av en OpenCV-perspektivtransformasjon for å få en & # 8220top-down & # 8221 visning av et bilde.

    Figur 2: Å bruke et OpenCV-perspektivtransform for å vri bildet og få et ovenfra og nedfra.

    Og en tredje for godt mål:

    Figur 3: Nok et annet OpenCV getPerspectiveTranform eksempel for å få et fugleperspektiv av bildet.

    Som du kan se, har vi med suksess fått en top-down, & # 8220birds eye view & # 8221 av notecard!

    I noen tilfeller ser notatkortet litt skjevt ut & # 8212, dette er fordi vinkelen bildet ble tatt i er ganske alvorlig. Jo nærmere vi kommer til 90-graders vinkelen på & # 8220 ser ned & # 8221 på notekortet, jo bedre blir resultatene.

    Hva blir det neste? Jeg anbefaler PyImageSearch University.

    Jeg tror sterkt at hvis du hadde den rette læreren, kunne du herre datasyn og dyp læring.

    Tror du at læring av datasyn og dyp læring må være tidkrevende, overveldende og komplisert? Eller må involvere kompleks matematikk og ligninger? Eller krever en grad i informatikk?

    Alt du trenger for å mestre datasyn og dyp læring er at noen forklarer ting for deg i enkel, intuitiv vilkår. Og det er akkurat det jeg gjør. Mitt oppdrag er å endre utdanning og hvor komplekse emner om kunstig intelligens blir undervist.

    Hvis du er seriøs med å lære datasyn, bør neste stopp være PyImageSearch University, det mest omfattende datasynet, dyp læring og OpenCV-kurs online i dag. Her lærer du hvordan du gjør det vellykket og selvsikkert bruke datasyn på arbeidet ditt, forskning og prosjekter. Bli med meg på datamaskinsyn.

    Inne i PyImageSearch University finner du:

    • &Sjekk 23 kurs om viktige datasyn, dyp læring og OpenCV-emner
    • og sjekk 23 Fullføringssertifikater
    • &Sjekk 35t 14m on-demand video
    • &Sjekk Splitter nye kurs utgitt hver månedog sørger for at du kan følge med på toppmoderne teknikker
    • &Sjekk Forhåndskonfigurerte Jupyter Notatbøker i Google Colab
    • & sjekk Kjør alle kodeeksempler i nettleseren din - fungerer på Windows, macOS og Linux (ingen dev-miljøkonfigurasjon nødvendig!)
    • og sjekk Tilgang til sentraliserte koden repos for alle 400+ opplæringsprogrammer på PyImageSearch
    • &Sjekk Enkle nedlastinger med ett klikk for kode, datasett, pre-trente modeller, etc.
    • og sjekk Access på mobil, bærbar PC, stasjonær pc, etc.

    Fordeler med Matplotlib

    Ideen bak Matplotlib kan oppsummeres i følgende motto som sitert av John Hunter, skaperen og prosjektlederen for Matplotlib:

    Matplotlib prøver å gjøre enkle ting enkle og harde ting mulig .

    Vi kan generere publiseringsklare grafer av høy kvalitet med minimal innsats (noen ganger kan vi oppnå dette med bare en kodelinje eller så), og for forseggjorte grafer har vi et kraftig bibliotek for å støtte våre behov.

    Matplotlib ble født i det vitenskapelige området databehandling, hvor gnuplot og MATLAB ble (og er fortsatt) brukt mye.

    Ved inngangen til Python i vitenskapelige verktøykasser kan et eksempel på en arbeidsflyt for å behandle noen data være lik dette: "Skriv et Python-skript for å analysere data, og send deretter dataene til et gnuplot-skript for å plotte det". Nå med Matplotlib kan vi skrive et enkelt skript for å analysere og plotte data, med mye mer fleksibilitet (som gnuplot ikke har) og konsekvent bruker samme programmeringsspråk.

    Vi må tenke på å plotte ikke bare som det siste trinnet i arbeidet med dataene våre, men som en viktig måte å få visuell tilbakemelding i løpet av prosessen. Her vil de interaktive egenskapene til Matplotlib komme og redde oss.

    Matplotlib was modeled on MATLAB, because graphing was something that MATLAB did very well. The high degree of compatibility between them made many people move from MATLAB to Matplotlib, as they felt like home while working with Matplotlib.

    But what are the points that built the success of Matplotlib? Let's look at some of them:

    It uses Python: Python is a very interesting language for scientific purposes (it's interpreted, high-level, easy to learn, easily extensible, and has a powerful standard library) and is now used by major institutions such as NASA, JPL, Google, DreamWorks, Disney, and many more.

    It's open source, so no license to pay: This makes it very appealing for professors and students, who often have a low budget.

    It's a real programming language: The MATLAB language (while being Turing-complete) lacks many of the features of a general-purpose language like Python.

    It's much more complete: Python has a lot of external modules that will help us perform all the functions we need to. So it's the perfect tool to acquire data, elaborate the data, and then plot the data.

    It's very customizable and extensible: Matplotlib can fit every use case because it has a lot of graph types, features, and configuration options.

    It's integrated with LaTeX markup: This is really useful when writing scientific papers.

    It's cross-platform and portable: Matplotlib can run on Linux, Windows, Mac OS X, and Sun Solaris (and Python can run on almost every architecture available).

    In short, Python became very common in the scientific field, and this success is reflected even on this book, where we'll find some mathematical formulas. But don't be concerned about that, we will use nothing more complex than high school level equations.


    Python script for calculating the area of a polygon - Geographic Information Systems

    OpenCV is the huge open-source library for computer vision, machine learning, and image processing and now it plays a major role in real-time operation which is very important in today’s systems. By using it, one can process images and videos to identify objects, faces, or even the handwriting of a human. This article focuses on detecting objects.

    Merk: For more information, refer to Introduction to OpenCV.

    Object Detection

    Object Detection is a computer technology related to computer vision, image processing, and deep learning that deals with detecting instances of objects in images and videos. We will do object detection in this article using something known as haar cascades.

    Haar Cascades

    • Positive images – These images contain the images which we want our classifier to identify.
    • Negative Images – Images of everything else, which do not contain the object we want to detect.
      Krav.

    Steps to download the requirements below:

    • Run The following command in the terminal to install opencv.
    • Run the following command to in the terminal install the matplotlib.
    • To download the haar cascade file and image used in the below code as a zip file click here.

    Merk: Put the XML file and the PNG image in the same folder as your Python script.


    Se videoen: Areal af trekant ud fra polygon (September 2021).