Jedinica 4 / 12

Tok rada prostornih podataka uz QGIS i Python

Dobici:

  • Mogućnost korištenja AI u generiranju koda i toka posla za obradu prostornih podataka sa QGIS-om i Python-om (biblioteke kao što je GeoPandas)
  • Sposobnost testiranja prostornog koda proizvedenog od strane AI na malim uzorcima podataka i provjere ga u odnosu na greške koordinatnog sistema i geometrije
  • Sposobnost razumijevanja povjerljivosti podataka i potreba za provjerom skripte generisane umjetnom inteligencijom prije nego što je pokrene na stvarnim projektnim podacima.

Ponavljajući prostorni zadaci u jedinici za planiranje (obrezivanje slojeva, baferi za crtanje, izračunavanje površina, kombinovanje tabela) traju satima i proizvode greške kada se rade ručno. Postoje dva moćna, besplatna alata otvorenog koda koji automatizuju ove zadatke: QGIS (desktop GIS softver) i Python (programski jezik sa bibliotekama za prostorne podatke kao što su GeoPandas, Shapely, Rasterio). AI je nevjerovatno brz u generiranju koda i toka rada za ove alate: izrađuje radnu skriptu iz zahtjeva od jedne rečenice. Ali AI piše kod sa pretpostavkama koje ne možete vidjeti - pogrešan koordinatni sistem, pogrešna jedinica, operacija koja tiho briše elemente. Zato svaki prostorni kod koji AI proizvodi mora biti pročitan i testiran na malom uzorku prije nego što se pokrene na stvarnim projektnim podacima. Ova jedinica podučava bezbednu prostornu automatizaciju sa AI, čak i ako ne znate kako da kodirate.

Zašto QGIS i Python

QGIS vam omogućava analizu klikom; Lako se uči i uključuje Python konzolu. Python vam, s druge strane, omogućava da jednom napišete zadatke koji se ponavljaju i da ih pokrenete u stotinama datoteka. GeoPandas je najpraktičnija biblioteka za planere, koja kombinuje tabelarne podatke (pande) sa geografijom: čita slojeve, filtrira, crta bafere, izračunava oblasti sa jednom linijom koda. AI vrlo dobro piše GeoPandas kod; Ali kod koji izgleda dobro nije uvijek pravi kod.

Oprez: Skripta koju je napisao AI može se pokrenuti bez greške i još uvijek proizvodi potpuno pogrešne rezultate. “Radilo” i “ispravno” su dvije različite stvari. Validacija nije da kod ne uspije, već da rezultat odgovara poznatoj referenci.

Drugi važan koncept je ponovljivost: analizu koju napravite u javnoj instituciji trebalo bi da može da ponovi neko drugi mesecima kasnije sa istim koracima. Radnje napravljene ručnim klikom se ne pamte i ne mogu se revidirati; dok je Python skripta i zapis rada i reprodukuje isti rezultat. Pohranjivanje koda koji proizvodite pomoću AI zajedno s njegovim komentarima jača i odgovornost i korporativnu memoriju. Stoga težite "čitljivom, komentiranom i pohranjenom kodu", a ne "radnom kodu". Dobra navika je dodati kratak blok opisa na početak svake skripte, navodeći na kojim podacima se pokreće, kog datuma i za koju svrhu.

Zlatna pravila generiranja koda pomoću AI

  1. Dajte kontekst. Format datoteke, CRS, nazivi kolona, ​​šta želite da uradite.
  2. Pitajte za male. Kratki kod koji radi samo jedan posao je sigurniji od ogromne skripte.
  3. Pitajte za pojašnjenje. Ispišite na AI šta svaka linija koda radi; Nemojte pokretati kod koji ne razumijete.
  4. Testirajte ga na uzorku. Prvo probajte na uzorku podataka od 10-20 zapisa.
  5. Uporedite sa referencom. Uporedite površinu/udaljenost sa poznatom vrednošću.
  6. Napravi kopiju. Nikada nemojte prepisivati ​​glavne podatke; rad u kopiji.

Korak po korak: Sigurna prostorna skripta sa AI

  1. Pojasnite zadatak. "Izaberite zelene površine iz sloja parcele, izračunajte njihove površine, upišite površinu iznad 5000 m² u poseban fajl."
  2. Identifikujte podatke. Format (GeoPackage/Shapefile), CRS, relevantno ime kolone.
  3. Odštampajte kod + opis za AI. Komentirajte red po red.
  4. Obavite CRS i kontrolu jedinice. Površina u m² ili sloj u metričkom CRS?
  5. Pokrenite na uzorku podataka. Vizuelno provjerite rezultat.
  6. Potvrdite referencom. Uporedite površinu parcele sa vrednošću iz vlasničkog lista.
  7. Pokrenite ga na glavnim podacima, zapišite izlaz u novu datoteku.

Slaba prompt / Jaka prompt

Slab upit: "Izračunajte površinu parcela."

AI piše bez poznavanja koordinatnog sistema, formata i kolone; Polje se može pojaviti u pogrešnoj jedinici ili pogrešnom CRS-u.

Snažan upit: "Kod GeoPandas, pročitajte GeoPackage sloj ('parcels.gpkg', metrički nacionalni sistem kao što je CRS: EPSG:5254) i upišite površinu svake parcele u m² u novu kolonu 'area_m2'. Komentirajte svaki red koda. Dodajte red prije nego što je izračun površine metrički u CRS-u provjerite da je to rat; Napišite izlaz u novu datoteku, ne mijenjajte original."

Druga prompt proizvodi siguran kod koji se može revidirati jer sadrži CRS, jedinicu, siguran izlaz i opis.

Četiri šablona za kopiranje

Zadatak: Napišite kratki Python kod koji radi sljedeći zadatak sa GeoPandas. Komentirajte svaki red na turskom. Radnja: [...]Ulazna datoteka: [...] (format, CRS: [...], relevantna kolona: [...])Pravilo: Ne mijenjajte originalnu datoteku, upišite izlaz u NOVU datoteku. Provjerite je li CRS metrički prije operacije; Ako ne, upozorite.

Zadatak: Objasnite sljedeći Python/GeoPandas kod red po red i označite RIZIK: koji red može obrisati/prepisati podatke, koja operacija pretpostavlja CRS ili volumen, koji korak bi bio spor na velikim podacima. Promjena koda; samo objasni i upozori. Šifra: [...]

Zadatak: Napišite mali TEST plan prije pokretanja ovog koda na stvarnim podacima. S kojim uzorkom podataka, s kojim očekivanim rezultatom, s kojom referentnom vrijednošću treba ih validirati? Dajte kontrolnu listu. Kod/akcija: [...]

Zadatak: Opišite sljedeću QGIS akciju (kliknite korake) i kao putanju QGIS menija i kao ekvivalentni Python/GeoPandas kod. Navedite razlike i točke interesa (CRS, jedinica). Proces: [...]

Tabela: česte prostorne operacije i njihove zamke

transakcija

Šta radi

Zamka u AI kodu

verifikacija

Terenski račun

Pronalazi područje poligona

Polje je besmisleno u Geographic CRS-u

Poređenje sa poznatom površinom

Buffer

region oko granice

Greška jedinice (stepen/metar).

Metrički CRS + mjerenje

prostorna agregacija

Povezuje slojeve

Neispravan ključ/duplikat registracije

Kontrola brojanja zapisa

Clip

rezovi sa površinom

Gubitak podataka izvan granica

Uporedite ulaz/izlaz

reprojekcija

CRS zamjenjuje

Pogrešan cilj CRS

Potvrda EPSG koda

tri mini kofera

Slučaj 1 — Tiho prepisivanje. Planer pokreće skriptu koju je napisala AI direktno na osnovnom sloju. Kôd pogrešno primjenjuje filter, briše polovinu sloja i sprema ga u istu datoteku. Budući da nema rezervne kopije, podaci koji traju danima se gube. Lekcija: izlaz uvijek u novu datoteku, glavni podaci su uvijek suvišni.

Slučaj 2 — Pufer sa pogrešnom jedinicom. Jedan tim traži pristupni tampon od 500 stopa do škola. AI kod radi na geo CRS; Tampon od 500 "stepeni" pokriva cijelu kartu. Budući da tim testira na malom uzorku, hvata grešku prije nego što pređe u glavne podatke; Dodaje i popravlja projekciju u metrički CRS. Navika testiranja sprečava katastrofu.

Slučaj 3 — Učenje s objašnjenjem. Planer koji ne zna kod proizvodi kod za spajanje tako što AI tumači svaki red. On vidi da "ovaj red ispušta neusporedive rekorde" u opisu i shvaća da će time izgubiti neke parcele; Od AI traži verziju koja također zadržava nepodudarnosti. Razumijevanje koda je preduvjet za njegovo sigurno korištenje.

Uobičajene greške

  • Radi direktno na glavnim podacima. Uvek radite na kopiji, upisujući izlaz u novu datoteku.
  • Greška "uradila" za "tačno". Kod bez grešaka može dati netačne rezultate; Provjeriti referencom.
  • Pretpostavljajući CRS i volumen. Uvijek provjerite metrički CRS za operacije površine i udaljenosti.
  • Pokretanje koda koji ne razumijete. Rizično je pokrenuti ga bez traženja objašnjenja i ne znajući šta linije rade.
  • Preskočite mali test. Prebacivanje na velike podatke bez pokušaja uzorka podataka je najčešći izvor greške.
  • Davanje povjerljivih podataka uređajima u oblaku bez razmišljanja. Nemojte dijeliti stvarne podatke o parceli/osobi prilikom generiranja koda; Koristite uzorke/anonimne podatke.

Ukratko

QGIS i Python (posebno GeoPandas) automatiziraju ponavljajuće prostorne zadatke u planiranju; AI brzo generiše kod za ove alate. Ali AI piše kod sa pretpostavkama koje ne možete vidjeti: pogrešan CRS, pogrešan volumen, operacije koje tiho brišu podatke. Sigurna upotreba se zasniva na šest pravila: dajte kontekst, zatražite malo, dobijte pojašnjenje, testirajte na primjeru, provjerite referencom, napravite sigurnosnu kopiju. “Radilo” nije isto što i “ispravno”. Čak i ako ne znate kod, možete napraviti sigurnu prostornu automatizaciju s AI razumijevanjem svake linije i bez dijeljenja povjerljivih podataka.

Zadatak aplikacije

Odaberite prostorni zadatak koji se ponavlja (npr. izračunavanje površina u sloju i odvajanje vrha praga). (1) Odštampajte kod + opis linije u AI sa prvim šablonom. (2) Provjerite rizike istog koda kao i drugi predložak i pronađite barem jednu liniju "može obrisati podatke/pretpostavlja CRS". (3) Iznesite plan testiranja sa trećim šablonom: koji uzorak podataka, koja referentna vrijednost. (4) Zapišite tri sigurnosna koraka koja ćete poduzeti prije pokretanja koda na stvarnim podacima.

kontrolna lista

  • [ ] Dao sam AI format, CRS i kontekst stupca.
  • [ ] Objasnio sam svaki red koda; Nisam pokrenuo kod koji nisam razumio.
  • [ ] Htio sam kratak, jednofunkcionalni kod.
  • [ ] Testirao sam ga na malim uzorcima podataka i vizualno provjerio rezultat.
  • [ ] Provjerio sam rezultat sa poznatom referentnom vrijednošću.
  • [ ] Napravio sam sigurnosnu kopiju matičnih podataka; Napisao sam izlaz u novu datoteku.
  • [ ] Nisam dao stvarne povjerljive podatke uređaju u oblaku; Koristio sam anonimne/uzorak podataka.