Daugiau

Kaip suskaičiuoti daugiakampius daugybinėse funkcijose?


Bandau suskaičiuoti daugiakampių skaičių daugybėje funkcijų. Mano tikslas yra turėti „count“ atributą, kad būtų galima įvertinti daugybinių žemės sklypų suskaidymą.

Pažiūrėjau į lauko skaičiuoklę ir tinkamus papildinius, bet nematau nieko, kas galėtų padėti. Yra daugybė taškų, tiesių ir viršūnių skaičiavimo būdų, bet ne daugiakampiai.


Žinau, kad ieškote atsakymo, kuriame naudojama QGIS, bet jei norite naudoti atvirojo šaltinio GIS „Whitebox“ geotelinės analizės įrankius, tada pateikite išsamų atsakymą, kuris atliks bet kokį formos failą ir sukurs naują atributų lauką. lentelėje, kurioje nurodytas funkcinių dalių skaičius. Jums tiesiog reikia atidaryti scenarijaus langą „Whitebox“, pakeisti scenarijaus kalbą į „Groovy“ ir įklijuoti šį kodą:

importuoti whitebox.geospatialfiles.ShapeFile importuoti whitebox.geospatialfiles.shapefile. * importuoti whitebox.geospatialfiles.shapefile.attributes. * def inputFileName = "/MY_DIRECTORY/MY_FILE_NAME.shp" def shape = new ShapeFile (inputFileName) ) DBFField field = new DBFField () field.setName ("NUM_PARTS") field.setDataType (DBFField.DBFDataType.NUMERIC) field.setFieldLength (5) field.setDecimalCount (0) table.addField (field) for (int i = 0) ; i 

Turėsite atnaujinti šalia viršuje esančio kintamojo inputFileName vertę, kad nukreiptumėte ją į failą. Jūs taip pat galite naudoti „Python“ tam pačiam tikslui pasiekti, bet aš tai parašiau „Groovy“. Jei norite, taip pat galiu leisti scenarijui neįtraukti skylių dalių, jei dirbate su daugiakampiais.

Pateikiame pateiktą pasaulio šalių žemėlapio, parodančio kiekvienos šalies daugiakampio elemento dalių skaičių, pavyzdį:


Praėjus 4 metams atrodo, kad QGIS šią funkciją integravo į lauko skaičiuoklę. Išraiškos sintaksė yra:

num_geometries ($ geometrija)


Jei „QGIS“ yra vienintelis prieinamas įrankis, šis „Python Console“ kodas gali padaryti apgaulę:

sluoksnis = iface.activeLayer () x sluoksnyje.getFeatures (): geometrija = x.geometrija (). asMultiPolygon () spausdinti len (geometrija)

Žinoma, tai nėra išsamus sprendimas, jis tiesiog atspausdins daugybę numerių, nenurodydamas, su kuria funkcija jie susiję, tačiau tai yra pradžia. Jūs taip pat galėtumėte išspausdinti lauką „NAME“ ar kitą pageidaujamą rakto atributą. Arba galite modifikuoti, kad len (geometrija) sveikasis skaičius būtų parašytas kitame sluoksnio lauke.


Kitas ne QGIS sprendimas yra „OpenJUMP“ naudojimas. Jame yra specialus įrankių įrankis - Stastistika - Funkcijų Stastistika. Įrankis sukuria naują sluoksnį su šiais atributais:

  • nPts (viršūnių skaičius)
  • nHoles (skylių skaičius)
  • nKomponentai (komponentų skaičius)
  • srityje
  • ilgio
  • tipas (geometrijos tipas)

Jei norite suskaičiuoti daugiakampių skaičių daugiakampiuose, šis įrankis turėtų gerai atlikti darbą. Tačiau jei norite suskaičiuoti, kiek daugiakampių yra „GeometryCollections“, kuriuose yra ir kitokių geometrijų, pirmiausia turite susprogdinti kolekcijas.


Galite pabandyti atskirti daugiakampius į unikalų daugiakampį, tada atidaryti atributų lentelę ir stebėti eilučių skaičių (kuris atspindi daugiakampių skaičių).

Norėdami atskirti daugiakampį:Vector-> Geometry Tools-> Multipart to single parts


Atkreipkite dėmesį, kad skaitmeniniai duomenys turi tiksliai atspindėti teisinę registruotino pavadinimo padėtį.

Jei pateikiama savanoriškos registracijos paraiška, kurioje skaitmeniniai duomenys naudojami kaip alternatyva popieriniams planams, paraiškoje turi būti pateiktas .pdf, kuris padėtų atpažinti subjektus. Esant tokioms aplinkybėms, nepateikus .pdf, paraiška bus atmesta.

Jei paraiška naudoja popierinius planus / aktus, kad apibrėžtų mastą, tačiau taip pat pateikiami skaitmeniniai duomenys, būtų naudinga, jei maketo .pdf taip pat būtų pateiktas kaip vizualus vaizdas. .Pdf gali būti mažesnio masto, nei reikalaujama popieriniams planams, nes tai yra tik vizualinis registruojamų dalykų vaizdavimas. Tačiau jei nepateiksite .pdf tokiomis aplinkybėmis, paraiška nebus atmesta.

Kai skaitmeniniai duomenys teikiami kaip paraiškos dalis, jie turėtų būti siunčiami el. Paštu [email protected] Paraiškos formos papildomos informacijos skiltyje reikia pažymėti, kad skaitmeniniai duomenys teikiami elektroniniu paštu, o failo nuoroda turėtų būti pateikta.


Sintaksė

Daugiakampio ypatybės, kurios turi būti sujungtos. Jei tai yra sluoksnis, nurodantis vaizdavimo ir formos nepaisymą, yra įvesties ypatybėse, apdorojant agregatą bus atsižvelgiama į nepaisytas formas, o ne į elemento formas.

Bus sukurta išvesties funkcijų klasė.

Atstumas, kurį reikia įvykdyti tarp daugiakampio ribų, kad įvyktų agregacija. Turi būti nurodytas atstumas, kuris turi būti didesnis nei nulis. Galite pasirinkti pageidaujamą vienetą, numatytasis yra funkcijų vienetas.

Mažiausias agreguoto daugiakampio plotas, kurį reikia išlaikyti. Numatytoji vertė yra nulis, tai yra, kad būtų išsaugoti visi daugiakampiai. Galite nurodyti pageidaujamą vienetą, numatytasis yra funkcijų vienetas.

Mažiausias daugiakampio skylės dydis, kurį reikia išlaikyti. Numatytoji vertė yra nulis, tai yra, kad būtų išsaugotos visos daugiakampio skylės. Galite nurodyti pageidaujamą vienetą, numatytasis yra funkcijų vienetas.

Nurodoma išvesties ypatybių charakteristika kuriant agreguotas ribas.

  • NON_ORTHOGONAL - bus sukurtos organinės formos išvesties funkcijos. Tai tinka natūralioms savybėms, tokioms kaip augmenija ar dirvožemio daugiakampiai. Tai yra numatytasis nustatymas.
  • ORTHOGONAL - bus sukurtos ortogonaliai formos išvesties funkcijos. Ši parinktis tinka išsaugoti antropogeninių įvesties savybių, pavyzdžiui, pastato pėdsakų, geometrines charakteristikas.

Sluoksniai, kuriuose yra linijos arba daugiakampio ypatybės, kurios yra įvesties funkcijų agregavimo kliūtys. Savybės nebus sujungtos tarp barjero savybių. Ribinės funkcijos, kurios geometriškai prieštarauja įvesties funkcijoms, bus ignoruojamos.

Ryšių lentelė „vienas su daugeliu“, susiejanti daugiakampius su jų šaltinio daugiakampio ypatybėmis. Šioje lentelėje yra du laukai, OUTPUT_FID ir INPUT_FID, kuriuose saugomi atitinkamai sukaupti elementų ID ir jų šaltinių. Naudokite šią lentelę, kad išvesties ypatybėms išvesties funkcijoms būdingų atributų. Numatytasis šios lentelės pavadinimas yra išvesties funkcijų klasės pavadinimas, pridėtas prie _tbl. Numatytasis kelias yra toks pats kaip išvesties funkcijų klasė. Lentelė nekuriama, kai šis parametras paliekamas tuščias.


Diagrama (kairėje): Hidrografinis daugiakampis prieš suskaidytų siaurų daugiakampių procesą. Diagrama (dešinėje): Po suskaidytų siaurų daugiakampių proceso hidrografinis daugiakampis padalijamas į dalis, kurių plotis yra mažesnis nei 15 metrų.

Šis įrankis skirtas nustatyti daugiakampio ypatybių dalis, kurios yra per siauros, kad būtų galima vizualiai atskirti nurodytu mastu. Mažiausias plotis rodo trumpiausią atstumą tarp daugiakampio kraštų, kurį tikslinga rodyti išvesties skalėje.

Laukai bus pridėti prie išvesties funkcijų klasės, kurioje yra informacija apie kiekvieną padalytą daugiakampį.

  • split_type - nurodo, kokio tipo sritis yra identifikuojama.
    • 0 - nustatoma kaip siaura sritis
    • 1 - nenustatyta siaura sritis
    • 2 - identifikuojamas kaip siauras plotas, bet patenka į minimalų ilgį
    • 3 - nenurodytas kaip siauras plotas, tačiau patenka į minimalų ilgį
    • 4 - kūginė funkcija
    • split_length - skaidomo segmento ilgis.

    Minimalaus ilgio parametras yra trumpiausias atstumas, kuris turėtų egzistuoti tarp daugiakampių ir arba mažiausias ilgis, kuris turėtų egzistuoti atskiram daugiakampiui, rodomam skalėje. Pvz., Jei nusprendėte pakeisti „split_type 2“ daugiakampius (siaurus daugiakampius, trumpesnius nei minimalus ilgis) vidurio linija ir parodyti visus „split_type 3“ daugiakampius (platūs daugiakampiai, trumpesni už minimalų ilgį), tai gali sukelti mažų daugiakampiai, susieti su trumpų linijų segmentais. Atsižvelgdami į pageidaujamus rezultatus, galite pasirinkti, ar 2_tipo tipo daugiakampiai bus matomi, ar išsaugoti daugiakampius, kad jie atitiktų mažiausią plotį.

    Kūgio ilgio parametras pateikiamas hidrografiniams daugiakampiams. Pašalinus siaurą upės daugiakampio atkarpą, jis paprastai bus rodomas kaip upės vidurio linija mažesnėmis skalėmis, kad būtų išlaikytas vizualus hidrografinio tinklo ryšys. Galima sukurti smailų galą arba siaurėjantį tašką, kuriame daugiakampis susiaurėja, kad būtų užtikrintas sklandus perėjimas nuo daugiakampio iki vidurinės linijos, kuri bus rodoma. Jei pateikiamas kūgio ilgis 0, daugiakampiai, kurių split_type yra 4, nebus sukurti. Visos kitos split_type reikšmės kuriamos tiesiais galais.

    Šios priemonės rezultatų vientisumas priklauso nuo topologinio įvesties vientisumo. Atkreipkite dėmesį į šiuos įvesties duomenų reikalavimus ir pasiūlymus:

    • Tuščia arba nulinė geometrija - įvesties ypatybes turi sudaryti galiojančios geometrijos. Jei reikia, taisykite šias funkcijas naudodami įrankį „Remontuoti blogą geometriją“.
    • Vienos dalies funkcijos - įvesties funkcijose neturėtų būti kelių dalių funkcijų. Norėdami konvertuoti ypatybes į vieną dalį, naudokite įrankį „Multipart to Singlepart“ arba sukurkite topologiją su eilutės „must be single part“ taisykle.
    • Viršūnės - nepakankamai daugiakampio viršūnių gali pakenkti rezultatų kokybei. Jei daugiakampio ypatybėse yra nedaug viršūnių, prieš paleidžiant šį įrankį, rekomenduojama paleisti „Densify“ įrankį.
    • Netiesiniai segmentai - Bézier kreivės, apskrito lanko ir elipsės formos lanko segmentai gali pakenkti rezultatų kokybei. Jei daugiakampio ypatybėse yra netiesiniai segmentai, prieš paleidžiant šį įrankį, rekomenduojama paleisti „Densify“ įrankį, nes tai kreivėse pridės viršūnių.

    Išvesties funkcijų klasėje nebus jokių įvesties funkcijų geografinių atributų. Į išvesties funkcijų klasę bus įtrauktas laukas pavadinimu FID. Šiame lauke yra objekto ID, iš kurio kilo padalintas daugiakampis, ObjectID. FID laukas gali būti naudojamas suskaidyti daugiakampius su jų šaltinio daugiakampiais.

    Norėdami pasiekti geriausių rezultatų, prieš paleisdami suskaidytus siaurus daugiakampius, naudokite įrankį Pašalinti daugiakampio dalį, kad pašalintumėte mažas skylutes daugiakampio ypatybėse. Pavyzdžiui, skylių pašalinimas iš upių daugiakampių vidurio, kur yra salų daugiakampiai. Jei daugiakampyje yra skylė, įrankis atsižvelgs į atstumą nuo daugiakampio krašto iki skylės krašto. Dėl to upės daugiakampis kiekvienoje salos pusėje gali būti laikomas siauru, nors bendras upės plotis nuo krašto iki krašto yra didesnis nei minimalus plotis. Užpildžius mažas skylutes prieš vykdant „Split Narrow Polygons“, įrankis leis nepaisyti vietos, kurioje anksčiau buvo skylė, ir išmatuoti plotį nuo daugiakampio kraštų.


    Kaip suskaičiuoti daugiakampius daugybinėse funkcijose? - Geografinės informacinės sistemos

    Formos failuose yra geografinių duomenų objektai taškų, linijų ar daugiakampių pavidalu su susijusiais informaciniais atributais, apibūdinančiais geometrines ypatybes. „Shapefiles“ yra GIS pramonės standarto formatas, kurį sukūrė Aplinkos sistemų tyrimų institutas (ESRI) (žr. Http://www.esri.com/). Formos failuose yra geoerdviniai vektoriniai duomenys ir jie yra pagrindinis „SA Vector Tools“ įvesties duomenų tipas.

    Kiekviename formos faile saugomi vienos požymių klasės duomenys (t. Y. Formos faile yra taškų, linijų ar daugiakampių informacijos). Taškų formos yra vienos koordinatės funkcijos, tokios kaip dūmų kaminai, mokyklos ar uostai. Linijos formos gali būti ištisinės linijos, pavyzdžiui, keliai, taip pat gali būti linijos, tokios kaip upės atšakos ar intakai. Daugiakampio formos gali būti paprastos arba daugiasluoksnės sritys, pvz., Valstijos ir šalys (pvz., Mičigano valstija yra daugiasluoksnė forma). Formos failai nesaugo topologinės informacijos, nes jose nėra taškų, linijų ir daugiakampių sąsajų.

    Formos failą sudaro failų grupė, kurioje yra figūrų koordinatės, susiję atributai ir pasirinktinai žemėlapio projekcijos informacija. Kiekviename formos faile yra trys privalomi failai:

    .Shp & # 8211 formų ar bruožų (taškų, linijų ar daugiakampių) koordinatės

    „.Shx“ ir „# 8211“ formuoja padėties indekso duomenis, kad būtų lengviau atlikti paiešką per duomenis, esančius formos faile

    .Dbf & # 8211 atributų duomenys (pvz., Gyventojų skaičius, kelių klasės, oro uosto pajėgumai) kiekvienai formai dBASE III formatu.

    „Shapefile“ taip pat gali būti daugybė neprivalomų failų, kurių išsami informacija nėra svarbi šiai diskusijai.

    2.2 Erdviniai pakaitalai

    Erdviniai pakaitalai dažniausiai naudojami apskrities lygmens išmetamų teršalų duomenims suskirstyti į stačiakampius tinklelio elementus, naudojamus Eulerian oro kokybės modelyje, pavyzdžiui, Bendrijos daugialypės oro kokybės (CMAQ) modeliavimo sistemoje (žr. Www.cmascenter.org). Erdvinis pakaitalas yra didesnė už nulį ir mažesnė arba lygi vertei, nurodančiai teršalų (dažniausiai apskrities) dalį, kuri turėtų būti priskirta tam tikram tinklelio modeliui. Daugelyje išmetamųjų teršalų rūšių sąrašų yra duomenys, susumuoti pagal apskritis. Kadangi tam tikros apygardos plotas gali patekti į kelias tinklelio modelio langelius, turi būti naudojami erdviniai pakaitalai nurodant tos apskrities išmetamų teršalų dalį, kuri turi būti priskirta kiekvienai tinklo ląstelei, kuri sutampa su apskritimi. Šiuo metu EPA naudoja apie 65 skirtingus pakaitalų tipus, kurie apskaičiuojami iš maždaug 24 skirtingų formų failų. Erdviniai pakaitalai paprastai turi būti apskaičiuojami kiekvienam modeliuojamam tinkleliui, nebent naudojamas tinklelis yra visiškai suderinta tinklelio, kuriam jau yra erdviniai pakaitalai, pogrupis.

    Kuriant pakaitalus, paprastai yra tam tikro tipo geografinis atributas, kuris naudojamas apskrities emisijoms „suskaičiuoti“ į tinklelio ląsteles tokiu būdu, kuris yra konkretesnis nei apskrityje paplitęs paprastas vienodas vienetas, kuris neatspindėtų išmetamų teršalų skirtumų tarp miestų. , kaimo vietovės, uostai ir kt. Pavyzdžiui, svoriai gali būti informacija apie taškus, kurie žymi uostus (pvz., krantines), arba transporto priemonių mylių, nuvažiuotų linijomis, vaizduojančiomis kelių ar geležinkelių vietas, arba daugiakampio svorio atributus, pvz., geografinę vietovę. , gyventojų skaičius, namų ūkių skaičius ir žemės naudojimo kategorijos. Erdvinius pakaitalus galite sukurti naudodami „Spatial Allocator“ iš taškų, linijų ar daugiakampių formos failų, kuriuose yra svorio atributų informacijos. Viena pavieto (srg) reikšmė apskrities C ir tinklelio ląstelių GC yra išreikšta taip:

    kur srg = pakaitalas, C = apskritis ir GC = tinklelio langelis. Atkreipkite dėmesį, kad pakaitalas nebūtinai turi būti apskrityje, jis gali būti kai kurių kitų geografinių regionų, tokių kaip valstybė, provincija, tauta ar surašymo traktas. Šie daugiakampiai programoje žinomi kaip & quotdata daugiakampiai. & Quot

    Šia programa galima sukurti trijų rūšių pakaitalus: daugiakampio, linijinio ir taškinio. Daugiakampio pagrindu surogatuose naudojama atributų informacija, pagrįsta plotu (pvz., Gyventojų surašymo trakte). Pavaduojamoji vertė apskaičiuojama kaip apygardos ir tinklelio langelio sankirtoje esančio atributo vertės ir visos atributo vertės, esančios konkrečiame & quotdata daugiakampyje & quot; (pvz., Apskritis, valstija, surašymo traktas), santykis. Daugiakampio svorio atributų pavyzdžiai yra plotas, gyventojų skaičius, namų ūkių skaičius ir žemės naudojimas. Skaitiklis (t. Y. Svorio atributo vertė apskrities C ir tinklelio langelio GC sankirtoje) ir vardiklis (t. Y. Bendra atributo vertė apskrityje ar kitame duomenų daugiakampyje) apskaičiuojami pagal šias lygtis:

    kur srg = pakaitalas, C = apskritis (ar kitas duomenų daugiakampis), GC = tinklelio langelis, WP = svorio daugiakampis, tarpt. = susikirtimas, i = svorio daugiakampis ir n = svorio daugiakampių skaičius.


    Įrašas paskelbtas 2011-03-09
    Įrašas paskutinį kartą modifikuotas 2021-05-06
    Išteklių būsena einu

    Objekto aprašymas

    Objekto pavadinimas: WHSE_FOREST_VEGETATION.PEST_INFESTATION_POLY

    Trumpas vardas: PST_IF_PL
    Komentarai: PEST_INFESTATION_POLY nurodo vietos užkrėtimą kaip sritį (daugiakampį). Funkcijos tipas: daugiakampis daugiasluoksnis.


    Įrašas paskelbtas 2011-03-09
    Įrašas paskutinį kartą modifikuotas 2021-06-10
    Išteklių būsena einu

    Objekto aprašymas

    Objekto pavadinimas: WHSE_BASEMAPPING.FWA_WATERSHEDS_POLY

    Trumpas vardas: FWWTRSHDSP
    Komentarai: Sudėtyje yra visi baseino daugiakampiai, sukurti pagal pagrindines baseino ribų linijas, kranto kraštus, ribotuvo kraštus, pakrantės kraštus ir administracinių ribų kraštus, laikantis 1: 50K duomenų modelio. Gali būti kelių dalių geometrija. Erdvinis tipas: kelių dalių geometrija


    Įrašas paskelbtas 2011-03-09
    Įrašas paskutinį kartą modifikuotas 2021-06-26
    Išteklių būsena einu

    Objekto aprašymas

    Objekto pavadinimas: WHSE_BASEMAPPING.FWA_NAMED_WATERSHEDS_POLY

    Trumpas vardas: FWNMDWTRSH
    Komentarai: Sudėtyje yra visų pavadintų upių baseinai ir su jais susiję duomenys. BC yra maždaug 12 000 pavadintų vandens telkinių. Čia pateikiama kelių dalių geometrija. Erdvinė gemetrija: daugiasluoksnis daugiakampis


    GIS 1 (335) finalas

    2. Paprasta atstumo jungtis: palaiko prisijungimo santykio kardinalumą, o erdviniai kriterijai yra artumas / atstumas
    Apibendrinkite erdvinį prisijungimą prie AKA daugeliui naudojamas santykiuose „vienas prie daugelio“ arba „daugeliui į daugelį“, kai pažeidžiamas paprasto prisijungimo kardinalumas

    3. Apibendrintas vidinis sujungimas: naudojamas, kai paskirties objekte ir šaltinio objekte yra vienas nuo daugelio kardinalumo santykis, o erdvinis santykis yra izoliacija

    2 Padėties tikslumas
    Įvertinimas, kaip tiksliai duomenų rinkinio ypatybės atitinka jų faktines pozicijas realiame pasaulyje

    3 Atributo tikslumas
    - Įvertina, ar atributo vertės atitinka realiojo pasaulio vertybes

    4 Loginis nuoseklumas
    - Apibūdina, kaip ši funkcija imituoja realaus pasaulio situacijas
    -Paprastai apsiribojama topologinių klaidų testavimu

    5 Išsamumas
    Įvertina, ar duomenų rinkinys užfiksavo kiekvieną žinomą realaus pasaulio objektų rinkinio egzempliorių
    - Vertina, ar visi pirminiai duomenys buvo perduoti galutiniam produktui


    Įrašas paskelbtas 2011-03-09
    Įrašas paskutinį kartą modifikuotas 2021-05-22
    Išteklių būsena einu

    Objekto aprašymas

    Objekto pavadinimas: WHSE_BASEMAPPING.FWA_ISLANDS_POLY

    Trumpas vardas: FWSLNDSPL
    Komentarai: Turi visus salos daugiakampius. Salos gali sutapti, nes salose yra salų. Erdvinė geometrija: daugiasluoksnis daugiakampis


    Žiūrėti video įrašą: Keturkampiai (Spalio Mėn 2021).