Eenheid 4 / 12

Workflow voor ruimtelijke gegevens met QGIS en Python

Winst:

  • Mogelijkheid om AI te gebruiken bij het genereren van code en werkstromen voor verwerking van ruimtelijke gegevens met QGIS en Python (bibliotheken zoals GeoPandas)
  • Mogelijkheid om de door AI geproduceerde ruimtelijke code te testen op kleine voorbeeldgegevens en deze te verifiëren op basis van coördinatensysteem- en geometriefouten
  • Mogelijkheid om de vertrouwelijkheid van gegevens te begrijpen en de noodzaak om het door AI gegenereerde script te controleren voordat het op echte projectgegevens wordt uitgevoerd.

Repetitieve ruimtelijke taken in een planningseenheid (lagen bijsnijden, buffers tekenen, gebieden berekenen, tabellen combineren) duren uren en veroorzaken fouten als ze handmatig worden uitgevoerd. Er zijn twee krachtige, gratis en open source tools die deze taken automatiseren: QGIS (een desktop GIS-software) en Python (een programmeertaal met bibliotheken voor ruimtelijke gegevens zoals GeoPandas, Shapely, Rasterio). AI is ongelooflijk snel in het genereren van code en workflow voor deze tools: het stelt een werkend script op op basis van een verzoek van één zin. Maar AI schrijft code met aannames die je niet kunt zien: verkeerd coördinatensysteem, verkeerde eenheid, een operatie die stilletjes elementen verwijdert. Daarom moet elke ruimtelijke code die AI produceert, worden gelezen en getest op een klein monster voordat deze wordt uitgevoerd op echte projectgegevens. In deze unit leer je veilige ruimtelijke automatisering met AI, zelfs als je niet weet hoe je moet coderen.

Waarom QGIS en Python

QGIS laat u analyseren door te klikken; Het is gemakkelijk te leren en bevat een Python-console. Met Python daarentegen kun je repetitieve taken één keer schrijven en deze in honderden bestanden uitvoeren. GeoPandas is de meest praktische bibliotheek voor planners, die tabelgegevens (panda's) combineert met geografie: leest lagen, filtert, tekent buffers, berekent gebieden met één regel code. AI schrijft GeoPandas-code heel goed; Maar code die er goed uitziet, is niet altijd de juiste code.

Let op: een door een AI geschreven script kan zonder fouten worden uitgevoerd en toch volledig verkeerde resultaten opleveren. ‘Gewerkt’ en ‘correct’ zijn twee verschillende dingen. Validatie is niet dat de code niet faalt, maar dat het resultaat overeenkomt met een bekende referentie.

Een ander belangrijk concept is reproduceerbaarheid: een analyse die je in een publieke instelling maakt, moet maanden later met dezelfde stappen door iemand anders herhaald kunnen worden. Acties die worden uitgevoerd door handmatig te klikken, worden niet onthouden en kunnen niet worden gecontroleerd; terwijl een Python-script zowel een verslag van het werk is als hetzelfde resultaat reproduceert. Het opslaan van de code die u met AI produceert, samen met de bijbehorende opmerkingen, versterkt zowel de verantwoordelijkheid als het bedrijfsgeheugen. Streef dus naar ‘leesbare, becommentarieerde en opgeslagen code’, niet naar ‘werkende code’. Het is een goede gewoonte om aan het begin van elk script een kort beschrijvingsblok toe te voegen, waarin staat op welke gegevens het script draait, op welke datum en voor welk doel.

Gouden regels voor het genereren van code met AI

  1. Geef de context. Bestandsformaat, CRS, kolomnamen, wat u wilt doen.
  2. Vraag om klein. Een shortcode die één taak uitvoert, is veiliger dan een gigantisch script.
  3. Vraag om opheldering. Print naar de AI wat elke regel code doet; Voer geen code uit die u niet begrijpt.
  4. Test het op het monster. Probeer het eerst op een voorbeeldgegevens van 10-20 records.
  5. Vergelijk met referentie. Vergelijk een gebied/afstand met een bekende waarde.
  6. Maak een back-up. Overschrijf nooit stamgegevens; werk in kopie.

Stap voor stap: Een veilig ruimtelijk script met AI

  1. Verduidelijk de taak. "Selecteer groene gebieden uit de perceellaag, bereken de oppervlakte ervan, schrijf de oppervlakte boven de 5000 m² in een apart bestand."
  2. Identificeer de gegevens. Formaat (GeoPackage/Shapefile), CRS, relevante kolomnaam.
  3. Print code + beschrijving naar AI. Commentaar regel voor regel.
  4. Laat CRS en eenheidscontrole uitvoeren. Oppervlakte in m² of laag in metrisch CRS?
  5. Uitvoeren op voorbeeldgegevens. Controleer het resultaat visueel.
  6. Verifieer met een referentie. Vergelijk de oppervlakte van een perceel met de waarde van het eigendomsbewijs.
  7. Voer het uit op de stamgegevens en schrijf de uitvoer naar het nieuwe bestand.

Zwakke prompt/sterke prompt

Zwakke prompt: "Bereken de oppervlakte van de pakketten."

AI schrijft zonder het coördinatensysteem, het formaat en de kolom te kennen; Het veld verschijnt mogelijk in de verkeerde eenheid of in het verkeerde CRS.

Sterke prompt: "Lees met GeoPandas een GeoPackage-laag ('parcels.gpkg', een metrisch nationaal systeem zoals CRS: EPSG:5254) en schrijf de oppervlakte van elk pakket in m² in een nieuwe 'area_m2'-kolom. Geef commentaar op elke regel van de code. Voeg vóór de oppervlakteberekening een regel toe die controleert of de laag zich in een metrisch CRS bevindt; waarschuw als dit niet het geval is. Schrijf de uitvoer naar een nieuw bestand, verander het origineel niet."

De tweede prompt produceert controleerbare, veilige code omdat deze CRS, eenheid, beveiligde uitvoer en beschrijving bevat.

Vier kopieerbare sjablonen

Taak: Schrijf een korte Python-code die de volgende taak uitvoert met GeoPandas. Geef commentaar op elke regel in het Turks. Actie: [...]Invoerbestand: [...] (formaat, CRS: [...], relevante kolom: [...])Regel: Wijzig het originele bestand niet, schrijf de uitvoer naar een NIEUW bestand. Controleer of het CRS metrisch is voordat u het gebruikt; Zo niet, waarschuw dan.

Taak: Leg de volgende Python/GeoPandas-code regel voor regel uit en markeer de RISICO'S: welke regel gegevens kan verwijderen/overschrijven, welke bewerking uitgaat van CRS of volume, welke stap traag zou zijn bij big data. Het wijzigen van de code; gewoon uitleggen en waarschuwen. Code: [...]

Taak: Schrijf een klein TEST-plan voordat u deze code op echte gegevens uitvoert. Met welke voorbeeldgegevens, met welk verwacht resultaat, met welke referentiewaarde moet het gevalideerd worden? Geef een checklist. Code/actie: [...]

Taak: Beschrijf de volgende actie voor QGIS (klikstappen) als zowel het menupad van QGIS als de equivalente Python/GeoPandas-code. Specificeer verschillen en aandachtspunten (CRS, eenheid).Proces: [...]

Een tabel: frequente ruimtelijke operaties en hun valkuilen

transactie

Wat doet

Val in AI-code

verificatie

Veldrekening

Vindt polygoongebied

Veld is betekenisloos in Geografisch CRS

Vergelijking met bekend gebied

Buffer

regio rond de grens

Eenheidsfout (graden/meter).

Metrische CRS + meting

ruimtelijke aggregatie

Koppelt lagen

Onjuiste sleutel/dubbele registratie

Controle van het aantal records

Klem

bezuinigingen met oppervlakte

Gegevensverlies buiten de grenzen

Vergelijk invoer/uitvoer

herprojectie

CRS vervangt

Verkeerd doel-CRS

EPSG-codebevestiging

drie minikoffers

Geval 1 — Stil overschrijven. Een planner voert een door de AI geschreven script rechtstreeks op de basislaag uit. De code past ten onrechte een filter toe, verwijdert de helft van de laag en slaat deze op in hetzelfde bestand. Omdat er geen back-up is, gaan gegevens die dagenlang meegaan verloren. Les: uitvoer altijd naar nieuw bestand, stamgegevens altijd redundant.

Geval 2 — Buffer met verkeerde eenheid. Eén team vraagt ​​om een ​​toegangsbuffer van 150 meter voor scholen. AI-code draait op geo-CRS; De buffer van 500 graden bestrijkt de hele kaart. Omdat het team op een kleine steekproef test, wordt de fout opgemerkt voordat deze in de hoofdgegevens terechtkomt; Voegt projectie toe aan en corrigeert metrische CRS. De gewoonte om te testen voorkomt rampen.

Geval 3 — Verklarend leren. Een planner die geen code kent, produceert een joincode door de AI elke regel te laten interpreteren. Hij ziet in de beschrijving "met deze rij ongeëvenaarde records" en realiseert zich dat hierdoor enkele pakketten verloren zullen gaan; Het vraagt ​​de AI om een ​​versie die ook non-matches bijhoudt. Het begrijpen van de code is een voorwaarde om deze veilig te kunnen gebruiken.

Veel voorkomende fouten

  • Rechtstreeks draaiend op masterdata. Werk altijd aan de kopie en schrijf de uitvoer naar het nieuwe bestand.
  • Het verwarren van "werkte" met "juist". Foutloze code kan onjuiste resultaten opleveren; Verifieer met referentie.
  • Uitgaande van CRS en volume. Controleer altijd het metrische CRS voor gebieds- en afstandsoperaties.
  • Code uitvoeren die u niet begrijpt. Het is riskant om het uit te voeren zonder om uitleg te vragen en zonder te weten wat de lijnen doen.
  • Sla de kleine test over. Overstappen op big data zonder voorbeeldgegevens te proberen is de meest voorkomende bron van fouten.
  • Zonder nadenken vertrouwelijke gegevens naar cloudapparaten sturen. Deel geen echte pakket-/persoongegevens bij het genereren van code; Gebruik voorbeeld-/anonieme gegevens.

Samengevat

QGIS en Python (vooral GeoPandas) automatiseren repetitieve ruimtelijke taken bij de planning; AI genereert snel code voor deze tools. Maar AI schrijft code met aannames die je niet kunt zien: verkeerd CRS, verkeerd volume, bewerkingen die stilletjes gegevens verwijderen. Veilig gebruik is gebaseerd op zes regels: context geven, om een ​​kleine vraag vragen, opheldering krijgen, bijvoorbeeld testen, verifiëren door middel van referentie, een back-up maken. ‘Gewerkt’ is niet hetzelfde als ‘correct’. Zelfs als u geen code kent, kunt u met AI veilige ruimtelijke automatisering uitvoeren door elke regel te begrijpen en zonder vertrouwelijke gegevens te delen.

Applicatie taak

Kies een repetitieve ruimtelijke taak (bijvoorbeeld het berekenen van gebieden in een laag en het scheiden van de bovenkant van een drempel). (1) Print code + lijnbeschrijving naar AI met eerste sjabloon. (2) Controleer de risico's van dezelfde code als de tweede sjabloon en zoek ten minste één regel "kan gegevens wissen/veronderstelt CRS". (3) Voer een testplan uit met het derde sjabloon: welke monstergegevens, welke referentiewaarde. (4) Noteer drie beveiligingsstappen die u zult nemen voordat u de code op echte gegevens uitvoert.

controlelijst

  • [ ] Ik heb AI het formaat, het CRS en de kolomcontext gegeven.
  • [ ] Ik heb elke regel van de code uitgelegd; Ik heb geen code uitgevoerd die ik niet begreep.
  • [ ] Ik wilde een korte code met één functie.
  • [ ] Ik heb het getest op kleine voorbeeldgegevens en het resultaat visueel gecontroleerd.
  • [ ] Ik heb het resultaat geverifieerd met een bekende referentiewaarde.
  • [ ] Ik heb een back-up gemaakt van de stamgegevens; Ik heb de uitvoer naar het nieuwe bestand geschreven.
  • [ ] Ik heb de daadwerkelijke vertrouwelijke gegevens niet aan het cloudapparaat gegeven; Ik heb anonieme/voorbeeldgegevens gebruikt.