Enhed 4 / 12

Spatial Data Workflow med QGIS og Python

Gevinster:

  • Evne til at bruge AI i kode- og workflowgenerering til rumlig databehandling med QGIS og Python (biblioteker såsom GeoPandas)
  • Evne til at teste den rumlige kode produceret af AI på små prøvedata og verificere den mod koordinatsystem og geometrifejl
  • Evne til at forstå datafortrolighed og behovet for at kontrollere det AI-genererede script, før det køres på rigtige projektdata.

Gentagne rumlige opgaver i en planlægningsenhed (trimning af lag, tegning af buffere, beregning af arealer, kombination af tabeller) tager timer og giver fejl, når de udføres manuelt. Der er to kraftfulde, gratis og open source-værktøjer, der automatiserer disse opgaver: QGIS (en desktop GIS-software) og Python (et programmeringssprog med biblioteker til rumlige data såsom GeoPandas, Shapely, Rasterio). AI er utrolig hurtig til at generere kode og workflow til disse værktøjer: den udarbejder et fungerende script fra en anmodning med én sætning. Men AI skriver kode med antagelser, du ikke kan se - forkert koordinatsystem, forkert enhed, en operation, der lydløst sletter elementer. Det er derfor, at enhver rumlig kode, som AI producerer, skal læses og testes på en lille prøve, før den køres på rigtige projektdata. Denne enhed lærer sikker rumlig automatisering med AI, selvom du ikke ved, hvordan man koder.

Hvorfor QGIS og Python

QGIS lader dig analysere ved at klikke; Det er nemt at lære og inkluderer en Python-konsol. Python giver dig på den anden side mulighed for at skrive gentagne opgaver én gang og køre dem i hundredvis af filer. GeoPandas er det mest praktiske bibliotek for planlæggere, der kombinerer tabeldata (pandaer) med geografi: læser lag, filtrerer, tegner buffere, beregner områder med en linje kode. AI skriver GeoPandas kode meget godt; Men kode, der ser godt ud, er ikke altid den rigtige kode.

Forsigtig: Et script skrevet af en AI kan køre uden fejl og stadig producere helt forkerte resultater. "Fungeret" og "korrekt" er to forskellige ting. Validering er ikke, at koden fejler, men at resultatet matcher en kendt reference.

Et andet vigtigt koncept er reproducerbarhed: en analyse, du laver i en offentlig institution, burde kunne gentages med de samme trin af en anden måneder senere. Handlinger foretaget ved at klikke manuelt huskes ikke og kan ikke revideres; hvorimod et Python-script både er en registrering af arbejdet og gengiver det samme resultat. Lagring af den kode, du producerer med AI, sammen med dens kommentarer styrker både ansvarlighed og virksomhedens hukommelse. Så sigt efter "læsbar, kommenteret og gemt kode", ikke "arbejdskode". En god vane er at tilføje en kort beskrivelsesblok i begyndelsen af ​​hvert script, der angiver, hvilke data det kører på, på hvilken dato og til hvilket formål.

Gyldne regler for at generere kode med AI

  1. Giv konteksten. Filformat, CRS, kolonnenavne, hvad du vil gøre.
  2. Spørg efter små. En shortcode, der udfører et enkelt job, er sikrere end et kæmpe script.
  3. Bed om afklaring. Udskriv til AI, hvad hver linje kode gør; Kør ikke kode, du ikke forstår.
  4. Test det på prøven. Prøv det først på en prøvedata på 10-20 poster.
  5. Sammenlign med reference. Sammenlign et område/afstand med en kendt værdi.
  6. Back up. Overskriv aldrig stamdata; arbejde i kopi.

Trin for trin: Et sikkert rumligt script med AI

  1. Afklar opgaven. "Vælg grønne områder fra pakkelaget, beregn deres arealer, skriv arealet over 5000 m² i en separat fil."
  2. Identificer dataene. Format (GeoPackage/Shapefile), CRS, relevant kolonnenavn.
  3. Udskriv kode + beskrivelse til AI. Kommenter linje for linje.
  4. Få lavet CRS og enhedskontrol. Areal i m² eller lag i metrisk CRS?
  5. Kør på eksempeldata. Tjek resultatet visuelt.
  6. Bekræft med en reference. Sammenlign arealet af en pakke med dens skødeværdi.
  7. Kør det på stamdata, skriv output til den nye fil.

Svag prompt / Stærk prompt

Svag prompt: "Beregn areal for pakker."

AI skriver uden at kende koordinatsystemet, formatet og kolonnen; Feltet kan vises i den forkerte enhed eller den forkerte CRS.

Stærk prompt: "Med GeoPandas, læs et GeoPackage-lag ('parcels.gpkg', et metrisk nationalt system såsom CRS: EPSG:5254) og skriv arealet af hver pakke i m² ind i en ny 'area_m2'-kolonne. Kommenter hver linje i koden. Tilføj en linje før området CRS-beregningen, hvis det ikke er en Warn. output til en ny fil, skal du ikke ændre originalen."

Den anden prompt producerer kontrollerbar, sikker kode, fordi den indeholder CRS, enhed, sikker output og beskrivelse.

Fire kopierbare skabeloner

Opgave: Skriv en kort Python-kode, der udfører følgende opgave med GeoPandas. Kommenter hver linje på tyrkisk. Handling: [...]Inputfil: [...] (format, CRS: [...], relevant kolonne: [...])Regel: Ændr ikke originalfil, skriv output til NY fil.Kontroller, at CRS er metrisk før operation; Hvis ikke, advare.

Opgave: Forklar følgende Python/GeoPandas-kode linje for linje og marker RISICI: hvilken linje kan slette/overskrive data, hvilken operation forudsætter CRS eller volumen, hvilket trin ville være langsomt på big data. Ændring af koden; bare forklar og advar. Kode: [...]

Opgave: Skriv en lille TEST-plan, før du kører denne kode på rigtige data. Med hvilke prøvedata, med hvilket forventet resultat, med hvilken referenceværdi skal det valideres? Giv en tjekliste. Kode/handling: [...]

Opgave: Beskriv følgende QGIS-handling (klik-trin) som både QGIS-menustien og den tilsvarende Python/GeoPandas-kode. Angiv forskelle og interessepunkter (CRS, enhed).Proces: [...]

En tabel: hyppige rumlige operationer og deres faldgruber

transaktion

Hvad gør

Fælde i AI-kode

verifikation

Feltkonto

Finder polygonareal

Felt er meningsløst i Geographic CRS

Sammenligning med kendt område

Buffer

regionen omkring grænsen

Enhedsfejl (grad/meter).

Metrisk CRS + måling

rumlig aggregering

Tilknytter lag

Forkert nøgle/dubletregistrering

Kontrol af rekordtælling

Klip

snit med areal

Datatab uden for grænserne

Sammenlign input/output

reprojektion

CRS erstatter

Forkert mål CRS

EPSG kode bekræftelse

tre minisager

Tilfælde 1 — Tavs overskrivning. En planlægger kører et script skrevet af AI direkte på basislaget. Koden anvender et filter forkert, sletter halvdelen af ​​laget og gemmer det i den samme fil. Fordi der ikke er nogen backup, går data, der holder i dagevis, tabt. Lektion: output altid til ny fil, stamdata altid overflødige.

Tilfælde 2 — Buffer med forkert enhed. Et hold anmoder om en 500 fods adgangsbuffer til skolerne. AI-kode kører på geo CRS; 500 "graders" bufferen dækker hele kortet. Da holdet tester på en lille prøve, fanger det fejlen, før den overføres til hoveddataene; Tilføjer og retter projektion til metrisk CRS. Vanen med at teste forhindrer katastrofe.

Case 3 — Forklarende læring. En planlægger, der ikke kender kode, producerer en joinkode ved at lade AI fortolke hver linje. Han ser "denne række taber uovertrufne rekorder" i beskrivelsen og indser, at dette vil miste nogle pakker; Den beder AI om en version, der også holder ikke-matches. At forstå koden er en forudsætning for at bruge den sikkert.

Almindelige fejl

  • Kører direkte på stamdata. Arbejd altid på kopien, skriv output til den nye fil.
  • Forveksles med "virkede" for "korrekt". Fejlfri kode kan give forkerte resultater; Bekræft med reference.
  • Forudsat CRS og volumen. Kontroller altid det metriske CRS for område- og distanceoperationer.
  • Kørekode du ikke forstår. Det er risikabelt at køre det uden at bede om forklaringer og uden at vide, hvad linjerne gør.
  • Spring den lille test over. At skifte til big data uden at prøve eksempeldata er den mest almindelige fejlkilde.
  • Giver fortrolige data til cloud-enheder uden at tænke. Del ikke rigtige pakke-/persondata, når du genererer kode; Brug prøve/anonyme data.

Sammenfattende

QGIS og Python (især GeoPandas) automatiserer gentagne rumlige opgaver i planlægningen; AI genererer hurtigt kode til disse værktøjer. Men AI skriver kode med antagelser, du ikke kan se: forkert CRS, forkert volumen, operationer, der i det stille sletter data. Sikker brug er baseret på seks regler: Giv kontekst, bed om en lille, få afklaring, test i eksempel, verificere ved reference, sikkerhedskopier. "Fungerede" er ikke det samme som "korrekt." Selvom du ikke kender kode, kan du udføre sikker rumlig automatisering med AI ved at forstå hver linje og uden at dele fortrolige data.

Ansøgningsopgave

Vælg en gentagen rumlig opgave (f.eks. beregning af arealer i et lag og adskillelse af toppen af ​​en tærskel). (1) Udskriv kode + linjebeskrivelse til AI med første skabelon. (2) Tjek risiciene ved den samme kode som den anden skabelon og find mindst én linje "kan slette data/antager CRS". (3) Udskriv en testplan med den tredje skabelon: hvilke prøvedata, hvilken referenceværdi. (4) Skriv tre sikkerhedstrin ned, du vil tage, før du kører koden på rigtige data.

tjekliste

  • [ ] Jeg gav AI formatet, CRS og kolonnekonteksten.
  • [ ] Jeg forklarede hver linje i koden; Jeg kørte ikke kode jeg ikke forstod.
  • [ ] Jeg ønskede en kort, enkeltfunktionskode.
  • [ ] Jeg testede det på små prøvedata og kontrollerede visuelt resultatet.
  • [ ] Jeg verificerede resultatet med en kendt referenceværdi.
  • [ ] Jeg har sikkerhedskopieret stamdataene; Jeg skrev outputtet til den nye fil.
  • [ ] Jeg gav ikke de faktiske fortrolige data til cloud-apparatet; Jeg brugte anonyme/prøvedata.