Daugiau

Pasirinkite tolimiausią viršūnę iš daugiakampio centroido naudodami „ArcPy“

Pasirinkite tolimiausią viršūnę iš daugiakampio centroido naudodami „ArcPy“


Turiu daugiakampį ir daugiakampio centroidą. Noriu pasirinkti tolimiausią viršūnę iš centroido (paveikslėlis: taškas A). Naudojau „arcpy.FeatureVerticesToPoints_management“, kad sukurtų funkcijų klasę, kurioje yra taškų, sugeneruotų iš daugiakampio, bet nežinau, ką daryti toliau. Gal galėtumėte man padėti?

Taip pat noriu rasti daugiakampio kontūro tašką (tašką B) ir centroido bei tiesiausio taško (tiesė OA) kontūrą.

Būčiau labai dėkingas už bet kokią pagalbą.


Štai sutrumpinta @crmackey atsakymo versija. Daugiakampis sluoksnis vadinamas „POLY1“ ir turėtų būti vienintelis dalykas, kurį turite pakeisti, kad gautumėte tolimiausių viršūnių išvesties taškų failą-jis sukuria centrinius taškus skrendant:

>>> taškai = [] >>> su arcpy.da.SearchCursor („POLY1“, ['[email protected]']) kaip žymeklis:… žymeklio eilutei:… centroid = eilutė [0] .centroid… dist = 0 … Daliai eilutėje [0]:… pnt iš dalies:… cent_vert_dist = arcpy.PointGeometry (pnt) .distanceTo (centroid)… jei cent_vert_dist> dist:… dist = cent_vert_dist… far_point = arcpy.PointGeometry (pnt)… taškai .append (far_point) ... >>> arcpy.CopyFeatures_management (taškai, 'in_memory  points')

Galimas sekimas atgal į sankryžos tašką, esantį priešais tolimiausią viršūnę, tačiau reikės papildomos trigonometrijos, į kurią nesu pasiruošęs patekti, atm.


Man tai pavyko. Scenarijus sukurs išvesties taškų funkcijų klasę, kuri grąžins tašką, esantį toliausiai nuo centroido visiems daugiakampiams:

importuoti arcpy importuoti os importuoti sys importuoti atsekamumą importo matematiką iš datetime importavimo datetime kaip d arcpy.env.overwriteOutput = True def Message (msg): print str (msg) arcpy.AddMessage (msg) def findDistance (a, b): x = abs (a [0] - b [0]) y = abs (a [1] - b [1]) grąžinti matematiką.sqrt ((x*x) + (y*y)) def iter_geom (g): už i in xrange (g.partCount): išeiga i, g.getPart (i) def polyPoints (in_polys, out_points): "" "funkcija, skirta rasti mažiausią arba maksimalų atstumą tarp taškų Būtina: in_polys - šaltiniai taškai artimai analizei out_points - išvestis artimiausias ar tolimiausias taškas nuo centro "" "startTime = d.now () # grab xy coords point_dict, cent_dict = {}, {} su arcpy.da.SearchCursor (in_polys, ['[email protected]', ​​'[email protected] ']) kaip eilutės: eilučių eilutėms: taškai = [] i, dalis iter_geom (eilutė [1]): pt iter (lambda: part.next (), nėra): points.append ((pt .X, p.Y)) point_dict [eilutė [0]] = taškai cent_dict [eilutė [0]] = ([1] eilutė .centroid.X, [1] .centroid.Y) # patraukti atributus desc = arcpy .Aprašykite (in_polys) laukus = [f.vardas jei f aprašymo laukuose, jei ne f. reikalaujama] su arcpy.da.SearchCursor (in_polys, ['[email protected]'] + laukai) kaip eilutės: att_dict = {r [0]: r [1:] - r eilutėse } # sukurkite žodyną, kad surastumėte artimiausią ar tolimiausią viršūnę nuo centroid newpt_dict = {} oidui, taškai taške point_dict.iteritems (): c = cent_dict [oid] dist_dict = {coords: findDistance (c, coords), skirtos taškams} query_pt = max (dist_dict.values ​​()) k, v dist_dict.iteritems (): jei v == query_pt: newpt_dict [oid] = (k, v) # sukurti išvesties lentelės kelią, pavadinimas = os.path.split ( out_points). (out_points, 'POLY_ID', 'LONG') arcpy.management.AddField (out_points, 'POINT_DIST', 'DOUBLE') add_fields = ['POLY_ID', 'POINT_DIST'] ifields = ['[email protected]'] + laukai + add_fields su arcpy.da.InsertCursor (out_points, ifields) kaip irows: oid, pt_dist in newpt_ dict.iteritems (): all_atts = (pt_dist [0],) + att_dict [oid] + (oid, pt_dist [1]) irows.insertRow (all_atts) Žinutė ('Sukurta: %s' %os.path.basename ( out_points)) Pranešimas ('(Praėjęs laikas: %s)' %(str (d.now () - startTime) [: - 3])) return out_points if __name__ == '__main__': ## # stand alone polys = r'C:  TEMP  Utility  Utilities.gdb  Parcels_small 'out = polys +' _farPoints 'polyPoints (daugiasluoksniai, išeinantys)

Šis įrankis sukuria išvesties ypatybių klasę su analizėje naudojamais laukais ir nauju sveiko skaičiaus lauku pavadinimu SS_GROUP. Numatytasis atvaizdavimas pagrįstas lauku SS_GROUP ir parodo, į kurią grupę patenka kiekviena funkcija. Pavyzdžiui, jei nurodysite, kad norite 3 grupių, kiekviename įraše bus 1, 2 arba 3 SS_GROUP laukas. Kai parametrui „Spatial Constraints“ pasirinktas „NO_SPATIAL_CONSTRAINT“, išvesties ypatybių klasėje taip pat bus naujas dvejetainis laukas, vadinamas SS_SEED. Laukas SS_SEED nurodo, kurios funkcijos buvo naudojamos kaip atskaitos taškai grupėms auginti. Lauke SS_SEED esantis nenulinių verčių skaičius sutaps su parametro „Grupių skaičius“ įvesta verte.

Šis įrankis pasirinktinai sukurs PDF ataskaitos failą, kai nurodysite išvesties ataskaitos failo parametro kelią. Šioje ataskaitoje yra įvairių lentelių ir grafikų, padedančių suprasti nustatytų grupių ypatybes. PDF ataskaitos failas pasiekiamas per rezultatų langą.

Ataskaitos failo sukūrimas gali užtrukti daug laiko. Taigi, kol grupavimo analizė sukurs išvesties funkcijų klasę, rodančią grupės narystę, PDF ataskaitos failas nebus sukurtas, jei nurodysite daugiau nei 15 grupių arba daugiau nei 15 kintamųjų.

Kai įvesties funkcijų klasė nėra projektuojama (tai yra, kai koordinatės nurodomos laipsniais, minutėmis ir sekundėmis) arba kai išvesties koordinačių sistema nustatyta kaip geografinė koordinačių sistema, atstumai apskaičiuojami naudojant chordinius matavimus. Naudojami akordiniai atstumo matavimai, nes juos galima greitai apskaičiuoti ir labai gerai įvertinti tikruosius geodezinius atstumus, bent jau maždaug per trisdešimt laipsnių vienas nuo kito esančius taškus. Akordiniai atstumai yra pagrįsti išlenktu sferoidu. Atsižvelgiant į bet kokius du žemės paviršiaus taškus, akordinis atstumas tarp jų yra linijos, einančios per trimatę žemę, ilgis, jungiantis šiuos du taškus. Akordiniai atstumai pateikiami metrais.

Atsargiai:

Būtinai suprojektuokite savo duomenis, jei jūsų tyrimo sritis yra daugiau nei 30 laipsnių. Akordiniai atstumai nėra geras geodezinių atstumų, viršijančių 30 laipsnių, įvertinimas.

Laukas „Unikalus ID“ suteikia jums galimybę susieti išvesties funkcijų klasės įrašus su pirminės įvesties funkcijų klasės duomenimis. Todėl unikalios ID lauko vertės turi būti unikalios kiekvienai funkcijai ir paprastai turėtų būti nuolatinis laukas, kuris lieka funkcijų klasėje. Jei duomenų rinkinyje neturite unikalaus ID lauko, galite lengvai jį sukurti pridėję naują sveikų skaičių lauką prie funkcijų klasių lentelės ir apskaičiuodami, kad lauko reikšmės yra lygios FID/OID laukui. Negalite naudoti FID/OID lauko tiesiogiai unikaliam ID lauko parametrui.

Analizės laukai turi būti skaitiniai ir juose turi būti įvairių verčių. Laukai be variacijos (ty ta pati kiekvieno įrašo vertė) bus pašalinti iš analizės, bet bus įtraukti į išvesties funkcijų klasę. Kategoriniai laukai gali būti naudojami su grupavimo analizės įrankiu, jei jie pateikiami kaip netikri kintamieji (visų kategorijos funkcijų vertė yra viena, o visų kitų funkcijų - nuliai).

Grupavimo analizės įrankis sukurs grupes su erdvės ar laiko apribojimais arba be jų. Kai kurioms programoms galbūt nenorėsite nustatyti gretimumo ar kitų artumo reikalavimų sukurtoms grupėms. Tokiais atvejais erdvinių apribojimų parametrą nustatysite į NO_SPATIAL_CONSTRAINT.

Kai kurioms analizėms norėsite, kad grupės būtų erdviškai gretimos. Gretutinės parinktys įgalintos daugiakampių funkcijų klasėms ir nurodo, kad funkcijos gali būti tos pačios grupės dalis tik tuo atveju, jei jos turi bendrą kraštą (CONTIGUITY_EDGES_ONLY) arba jei jos turi kraštą arba viršūnę (CONTIGUITY_EDGES_CORNERS) su kitu grupės nariu.

DELAUNAY_TRIANGULATION ir K_NEAREST_NEIGHBORS parinktys tinka taško ar daugiakampio funkcijoms, kai norite užtikrinti, kad visi grupės nariai būtų artimi. Šios parinktys rodo, kad funkcija bus įtraukta į grupę tik tuo atveju, jei bent viena kita savybė yra natūralus kaimynas (Delaunay trikampis) arba K artimiausias kaimynas. K yra kaimynų, į kuriuos reikia atsižvelgti, skaičius ir nurodomas naudojant parametrą „Kaimynų skaičius“.

Norėdami sukurti grupes su erdvės ir laiko apribojimais, pirmiausia naudokite įrankį „Sukurti erdvinių svorių matricą“, kad sukurtumėte erdvinių svorių matricos failą (.swm), apibrėžiantį jūsų funkcijų erdvės ir laiko santykius. Kitą kartą paleiskite grupavimo analizę, nustatydami erdvinių apribojimų parametrą į GET_SPATIAL_WEIGHTS_FROM_FILE, o erdvinio svorio matricos failo parametrą - į sukurtą SWM failą.

Papildomi erdviniai apribojimai, pvz., Fiksuotas atstumas, gali būti nustatyti naudojant įrankį „Sukurti erdvinių svorių matricą“, kad būtų sukurtas SWM failas, o tada nurodytas kelias į tą failą parametrui „Spatial Weights Matrix File“.

Nors galite sukurti erdvinių svorių matricos (SWM) failą, kad apibrėžtumėte erdvinius apribojimus, faktinis svoris netaikomas. SWM apibrėžia, kurios funkcijos yra gretimos ar artimos. Nustatant erdvinį suvaržymą, nustatoma, kas gali būti ir kas negali būti tos pačios grupės nariai. Pavyzdžiui, jei pasirinksite CONTIGUITY_EDGES_ONLY, visos vienos grupės funkcijos turės bent vieną bendrą bruožą su kita grupės funkcija. Tai išlaiko gautas grupes erdviniu gretimumu.

Apibrėžus erdvinį suvaržymą, užtikrinamos kompaktiškos, gretimos arba artimos grupės. Erdvinių kintamųjų įtraukimas į analizės laukų sąrašą taip pat gali paskatinti šiuos grupės atributus. Erdvinių kintamųjų pavyzdžiai galėtų būti atstumas iki greitkelių, rampų, prieinamumas prie laisvų darbo vietų, artumas apsipirkimo galimybėms, ryšio matai ir net koordinatės (X, Y). Įtraukiant kintamuosius, vaizduojančius laiką, savaitės dieną ar laiko atstumą, galima paskatinti grupės narių laikiną kompaktiškumą.

Kai jūsų bruožai turi aiškų erdvinį modelį (pavyzdys būtų trys atskiros, erdvėje skirtingos grupės), tai gali apsunkinti erdvėje suvaržytą grupavimo algoritmą. Vadinasi, grupavimo algoritmas pirmiausia nustato, ar yra atjungtų grupių. Jei atjungtų grupių skaičius yra didesnis nei nurodytas grupių skaičius, įrankis negali išspręsti problemos ir nepavyks su atitinkamu klaidos pranešimu. Jei atjungtų grupių skaičius yra visiškai toks pat, kaip nurodytas grupių skaičius, vien tik funkcijų erdvinė konfigūracija lemia grupės rezultatus, kaip parodyta toliau (A). Jei nurodytas grupių skaičius yra didesnis už atjungtų grupių skaičių, grupavimas pradedamas nuo jau nustatytų atjungtų grupių. Pvz., Jei yra trys atsietos grupės ir nurodytas grupių skaičius yra 4, viena iš trijų grupių bus padalyta, kad būtų sukurta ketvirta grupė, kaip parodyta toliau (B).

Kai kuriais atvejais Grupavimo analizės įrankis negalės patenkinti nustatytų erdvinių apribojimų, o kai kurios funkcijos nebus įtrauktos į jokią grupę (SS_GROUP reikšmė bus -9999 su tuščiaviduriu atvaizdavimu). Tai atsitinka, jei yra funkcijų, neturinčių kaimynų. Norėdami to išvengti, naudokite K_NEAREST_NEIGHBORS, kuris užtikrina, kad visos funkcijos turi kaimynus. Padidinus parametrą „Kaimynų skaičius“ padės išspręsti problemas, susijusias su atsijungusiomis grupėmis.

Nors yra tendencija norėti įtraukti kuo daugiau analizės laukų, šiam įrankiui geriausia pradėti nuo vieno kintamojo ir sudaryti. Rezultatus daug lengviau interpretuoti, kai yra mažiau analizės laukų. Taip pat lengviau nustatyti, kurie kintamieji yra geriausi diskriminatoriai, kai yra mažiau laukų.

Kai parametrui „Erdviniai apribojimai“ pasirenkate NO_SPATIAL_CONSTRAINT, turite tris inicializavimo metodo parinktis: FIND_SEED_LOCATIONS, GET_SEEDS_FROM_FIELD ir USE_RANDOM_SEEDS. Sėklos yra savybės, naudojamos atskiroms grupėms auginti. Jei, pavyzdžiui, parametro „Grupių skaičius“ įvedate 3, analizė prasidės trimis pradinėmis funkcijomis. Numatytoji parinktis FIND_SEED_LOCATIONS atsitiktine tvarka parenka pirmąją sėklą ir užtikrina, kad tolesnės pasirinktos sėklos atspindėtų ypatybes, kurios yra toli viena nuo kitos duomenų erdvėje. Pasirinkus pradines sėklas, kurios užfiksuoja skirtingas duomenų erdvės sritis, pagerėja našumas. Kartais žinote, kad tam tikros savybės atspindi skirtingas savybes, kurias norite atstovauti skirtingoms grupėms. Tokiu atveju sukurkite sėklų lauką, kad nustatytumėte tas skiriamąsias savybes. Jūsų sukurtame sėklų lauke turi būti visi nuliai, išskyrus pradines sėklų savybes, pradinių sėklų ypatybių vertė turėtų būti 1. Tada parametro „Initialization Method“ parametrui pasirenkate GET_SEEDS_FROM_FIELD. Jei norite atlikti tam tikrą jautrumo analizę, kad pamatytumėte, kurios funkcijos visada yra toje pačioje grupėje, galite pasirinkti USE_RANDOM_SEEDS parametro inicializavimo parinktį. Pasirinkus šią parinktį, visos sėklų savybės pasirenkamos atsitiktinai.

Visos reikšmės 1 inicializacijos lauke bus interpretuojamos kaip pradinė. Jei sėklų funkcijų yra daugiau nei grupių skaičius, sėklos ypatybės bus atsitiktinai pasirinktos iš tų, kurios nurodytos inicializavimo lauke. Jei sėklų funkcijų yra mažiau, nei nurodyta grupių skaičiuje, papildomos sėklų funkcijos bus pasirinktos taip, kad jos būtų toli (duomenų erdvėje) nuo tų, kurios nurodytos inicijavimo lauke.

Kartais žinote, koks grupių skaičius labiausiai tinka jūsų duomenims. Tačiau jei to nepadarysite, gali tekti išbandyti skirtingą grupių skaičių, pažymint, kurios vertės suteikia geriausią grupių diferenciaciją. Kai tikrinate parametrą Įvertinti optimalų grupių skaičių, grupuojama 2–15 grupių sprendimų pseudo F statistika. Jei jokie kiti kriterijai nepadeda pasirinkti grupių skaičiaus, naudokite skaičių, susietą su viena didžiausių pseudo F statistikos verčių. Didžiausios F-statistinės vertės rodo sprendimus, kurie geriausiai veikia tiek grupėje, tiek grupėse. Kai nurodote pasirenkamą išvesties ataskaitos failą, toje PDF ataskaitoje bus grafikas, rodantis sprendimų su 2–15 grupių F statistikos vertes.

Nepriklausomai nuo nurodyto grupių skaičiaus, įrankis sustos, jei padalijimas į papildomas grupes taps savavališkas. Tarkime, kad jūsų duomenys susideda iš trijų erdvėje suskirstytų daugiakampių ir vieno analizės lauko. Jei visos klasterio funkcijos turi tą pačią analizės lauko reikšmę, tampa savavališka, kaip kuri nors iš atskirų grupių yra padalijama po to, kai sukuriamos trys grupės. Jei šioje situacijoje nurodysite daugiau nei tris grupes, įrankis vis tiek sukurs tik tris grupes. Kol bent vienas iš grupės analizės laukų turi tam tikrų verčių variacijų, skirstymas į papildomas grupes gali būti tęsiamas. Grupės nebus toliau skirstomos, jei analizės lauko vertės nesikeis

Kai į analizę įtraukiate erdvinį ar erdvės laiko apribojimą, pseudo F statistika yra palyginama (jei įvesties ypatybės ir analizės laukai nesikeičia). Taigi, naudodamiesi F statistikos vertėmis, galite nustatyti ne tik optimalų grupių skaičių, bet ir padėti jums pasirinkti efektyviausią erdvinių apribojimų parinktį, atstumo metodą ir kaimynų skaičių.

„K-Means“ algoritmas, naudojamas funkcijoms suskirstyti į grupes, kai parametrui „Spatial Constraints“ pasirinktas „NO_SPATIAL_CONSTRAINT“, o „FIND_SEED_LOCATIONS“ arba „USE_RANDOM_SEEDS“ pasirinktas inicializavimo metodas, įtraukta euristika ir kiekvieną kartą paleidus įrankį gali būti pateiktas kitoks rezultatas (net naudojant tuos pačius duomenis) ir tie patys įrankio parametrai). Taip yra todėl, kad yra atsitiktinis komponentas, leidžiantis rasti pradines sėklų savybes, naudojamas grupėms auginti.

Kai nustatomas erdvinis apribojimas, algoritme nėra atsitiktinio komponento, todėl 2–15 grupėms galima apskaičiuoti vieną pseudo F statistiką, o didžiausios F statistikos reikšmės gali būti naudojamos optimaliam grupių skaičiui nustatyti jūsų analizė. Kadangi NO_SPATIAL_CONSTRAINT parinktis yra euristinis sprendimas, vis dėlto reikia nustatyti optimalų grupių skaičių. Dėl skirtingų pradinių sėklų savybių F-statistika kiekvieną kartą paleidus įrankį gali būti kitokia. Tačiau kai jūsų duomenyse yra atskiras modelis, sprendimai iš vieno paleidimo į kitą bus nuoseklesni. Todėl, norėdamas padėti nustatyti optimalų grupių skaičių pasirinkus parinktį NO_SPATIAL_CONSTRAINT, įrankis 10 kartų išsprendžia grupavimo analizę 2, 3, 4 ir iki 15 grupių. Tada pateikiama informacija apie šių 10 tirpalų pasiskirstymą (min, max, vidurkis ir mediana), kad būtų lengviau nustatyti optimalų analizės grupių skaičių.

Grupavimo analizės įrankis grąžina tris išvesties vertes, kurias galima panaudoti pasirinktiniuose modeliuose ir scenarijuose. Tai yra grupių skaičiaus pseudo F statistika (Output_FStat), didžiausia pseudo F statistika nuo 2 iki 15 grupių (Max_FStat) ir grupių skaičius, susietas su didžiausia pseudo F statistikos reikšme (Max_FStat_Group). Kai nepasirinksite įvertinti optimalaus grupių skaičiaus, visi išvestiniai išvesties kintamieji bus nustatyti į Nėra.

Grupės numeris, priskirtas funkcijų rinkiniui, gali keistis. Pvz., Tarkime, kad padalijote funkcijas į dvi grupes pagal pajamų kintamąjį. Kai pirmą kartą atliksite analizę, antrą kartą atlikdami tą pačią analizę galite pamatyti dideles pajamas turinčias funkcijas, pažymėtas kaip 2 grupė, ir mažas pajamas turinčias, pažymėtas kaip 1 grupė, didelių pajamų ypatybės gali būti pažymėtos kaip 1 grupė. matote, kad kai kurios vidutinių pajamų funkcijos perjungia grupės narystę iš vienos veiklos į kitą, kai nurodomas NO_SPATIAL_CONSTRAINT.

Nors galite pasirinkti sukurti labai daug skirtingų grupių, daugeliu atvejų tikriausiai skirstysite funkcijas į kelias grupes. Kadangi diagramas ir žemėlapius tampa sunku interpretuoti naudojant daugybę grupių, ataskaita nesukuriama, kai parametro „Grupių skaičius“ įvedate didesnę nei 15 reikšmę arba pasirenkate daugiau nei 15 analizės laukų. Tačiau šį apribojimą galite padidinti iki maksimalaus grupių skaičiaus.

Įnerti:

Kadangi turite grupavimo analizės įrankio „Python“ šaltinio kodą, jei norite, galite nepaisyti 15 kintamųjų/15 grupės ataskaitų apribojimų. Šią viršutinę ribą nustato du kintamieji „Partition.py“ scenarijaus faile ir įrankio patvirtinimo kodas erdvinės statistikos įrankių dėžutėje:

Šis įrankis pasirinktinai sukurs rezultatų ataskaitą PDF formatu. PDF failai automatiškai nerodomi katalogo lange. Jei norite, kad kataloge būtų rodomi PDF failai, atidarykite „ArcCatalog“ programą, pasirinkite meniu parinktį „Tinkinti“, spustelėkite „ArcCatalog Options“ ir pasirinkite skirtuką „Failų tipai“. Spustelėkite mygtuką Naujas tipas ir nurodykite failo plėtinio PDF, kaip parodyta žemiau.

Mašinose, sukonfigūruotose naudojant kinų ar japonų kalbos „ArcGIS“ kalbos paketus, PDF išvesties ataskaitos faile galite pastebėti trūkstamo teksto ar formatavimo problemų. Šias problemas galima išspręsti pakeitus šrifto nustatymus.

Norėdami gauti daugiau informacijos apie išvesties ataskaitos failą, žr. Sužinokite daugiau apie tai, kaip veikia grupavimo analizė.


Iš esmės norite ieškoti atstumo tarp daugiakampio A ir amp

Štai žingsniai, kurių aš imsiuosi:

  1. Patikrinkite, ar daugiakampis B yra daugiakampio A kaimynas, jei jis = Baigti, Jei ne, pereikite prie 2 taško.
  2. Apskaičiuokite visų kaimyninių daugiakampių ir daugiakampio B koordinačių centridą (vidurinį tašką)
  3. Suskaičiuokite atstumą tarp kaimyninio centroido iki daugiakampio B centroido, pasirinkite daugiakampį, kurio atstumas yra arčiausiai (daugiakampis C)
  4. Atstumas = atstumas + 1, patikrinkite, ar daugiakampis B yra daugiakampio C kaimynas, jei jis yra = baigta, jei ne, daugiakampis A = daugiakampis C, eikite į 2 tašką

Pabaigoje gausite atstumą.

Radau būdą, kaip įgyvendinti šį skaičiavimą naudojant esamą programinę įrangą.

Pirmiausia importuokite „shp“ failą į „PostgreSQL“ naudodami „PostGIS“ papildinį.

Antra, naudokite funkciją ST_Touches, kad apskaičiuotumėte kiekvieno daugiakampio gretimus daugiakampius.

Trečia, kiekvieną poligoną laikykite tašku ir sukurkite naują tinklą.

Galiausiai apskaičiuokite trumpiausią kelią tarp dviejų taškų, naudodami „Dijkstra“ algoritmą.


4 atsakymai 4

Kai kampai yra 90 laipsnių.

Įsitikinkite, kad kairioji apatinė koordinatė yra $ (0,0) $.

Tada turite $ (x, 0) $ ir $ (0, y) $, kad suformuotumėte trikampį.

Jei turite savavališkų trikampio taškų, sakykite

$ (x_0, y_0), quad (x_1, x_1), quad (x_2, y_2) $

Stačiakampio kraštinės sudaro du skirtingus kampus su kvadrato kraštinėmis (kvadratas). Jie sudaro 90 USD. Turime apskaičiuoti abu.

Atkreipkime dėmesį į dvi stačiakampio viršūnes, esančias arčiausiai kairiojo apatinio kampo. Leiskite $ (x_1, y_1) $ viršūnės koordinates vertikalioje pusėje, o $ (x_2, y_2) $ horizontalioje pusėje.

Vienas iš kampų yra $ alpha = arctan left ( frac teisingai) $

O kitas yra $ 90^ circ- alpha $.

Centroidai yra vienodi tiek žaliam, tiek violetiniam stačiakampiui, nes paskutinis yra pirmojo mastas.

Jei turite tik purpurinės spalvos informaciją, atsakykite: tai sudėtinga. Pabandykite įsivaizduoti, kad kai žalia spalva pasukama pi/4 rad, yra begalinės galimybės žaliems stačiakampiams per tą patį apimties purpurinis stačiakampis. Ir kaip nustatyti, ar žalias stačiakampis yra pasuktas pi/2 rad, ar apskritai nesukamas (0 rad)?

Dabar, jei turite informacijos iš violetinės spalvos ir bet kurio taško iš žalios spalvos, galite lengvai atpažinti kitus taškus naudodami šį žalią tašką kartu su violetiniu centroidu. Tikiuosi, kad jums pavyks pereiti visą procesą.

Atminkite, kad „daugiakampį“ pakeičiau į „stačiakampį“. Violetinė dėl savo „masto“ pobūdžio visada bus stačiakampis. Dabar, jei tikrai turėjote omenyje bendrą stačiakampį „daugiakampį“ vidiniam (žaliam), vieno papildomo žinomo taško nepakaks. Atsiprašau, jei negalėjau tavęs toliau nuvesti.


Pasirinkite tolimiausią viršūnę iš daugiakampio centroido naudodami „ArcPy - Geographic Information Systems“


Gretimos zonos kartogramos sudarymas naudojant „ArcView Avenue“

Skirtingai nuo tipiškų choropletų žemėlapių, kuriuose grafiniai simboliai naudojami kiekybiniams apibrėžtų regionų atributams pavaizduoti, kartogramos sąmoningai iškraipo regionų ribas taip, kad iškraipytų regionų dydis būtų proporcingas jų atributui. Nors „Avenue“ scenarijus kartogramoms gaminti yra paskelbtas, jis buvo naudojamas retai, nes jis turi daug apribojimų ir užima daug laiko. Norint sugeneruoti kartogramą ne itin sudėtingam žemėlapiui, gali prireikti valandų skaičiavimo, o gauta kartograma gali būti nepatenkinama. Šiame straipsnyje aprašytas patobulintas kartogramų efektyvesnio kūrimo algoritmas. Naujasis algoritmas buvo įdiegtas „Avenue“ scenarijuje.

Kartograma yra tikslingai iškreiptas teminis žemėlapis, kuriame pabrėžiamas kintamojo pasiskirstymas keičiant žemėlapio objektų plotą (ar ilgį). Naudojant kartogramas, galima lengviau pastebėti reiškinių erdvinio pasiskirstymo ir jų tarpusavio sąveikos dėsningumus. Kartogramos naudojamos geografiniams tyrimams, ypač rinkėjų balsams ar gyventojų skaičiui. Kartogramas galima suskirstyti į dvi kategorijas: linijines ir sritis. Ploto kartogramos tematinei informacijai atvaizduoti naudoja dvimatius iškraipymus, o tiesinės kartogramos išreiškia vienmačius kiekius, pakeisdamos žemėlapių atstumo komponentą. Ploto kartogramos gali būti gretimos arba nesusijusios. Gretimos vietovių kartogramos iškraipo planimetrinius žemėlapius arba sukuria norimą sričių rinkinį, išlaikydamos pradinio žemėlapio topologiją (Dougenik, 1985). Ne gretimas kartogramas lengviau pagaminti nei gretimas kartogramas, nes bendros ribos nedaro įtakos koordinačių transformacijai (Cook 1977). Šiame dokumente daugiausia dėmesio skiriama gretimos srities kartogramai, o trumpai naudojama kartograma.

Tradiciškai kartogramos buvo tiriamos akademiniu požiūriu ir jų naudojimas yra ribojamas, nes jas teoriškai sunku sukonstruoti. Jokia komercinė programinė įranga, įskaitant plačiausiai naudojamą GIS paketą „ArcView“, nesuteikia įrankių kartogramai kurti. Nors yra paskelbtas „Avenue“ scenarijus kartogramoms gaminti, jis retai naudojamas iš dalies, nes procedūra užima daug laiko. Norėdami sukurti kartogramą žemėlapiui, rodančiam 50 JAV valstijų, gali prireikti valandų skaičiavimo. Be to, jis negali tvarkyti regionų, suskirstytų į kelis daugiakampius. Šiame straipsnyje aprašomas patobulintas kartogramų efektyvesnio kūrimo metodas ir pateikiama įdiegta „Avenue“ programa.

Algoritmo supratimas

Mūsų „Avenue“ programoje naudojamas algoritmas, kurį pateikė Dougenik, Chrisman ir Niemeyer (1985). Šis algoritmas naudoja jėgų, veikiančių iš kiekvieno daugiakampio centroido, modelį, veikiantį kiekvieną ribos koordinatę atvirkščiai proporcingai atstumui. Jis gali pakartotinai pasiekti rezultatą dideliu tikslumu. Jėgos modelio koncepciją galima paaiškinti formule:

F ij = (P j - q j) pj / d ij (1)

Kur: F ij = jėga, kurią daugiakampis daro viršūnėje i
P j = kvadratinė šaknis (faktinis plotas)/kvadratinė šaknis (p)
q j = kvadratinė šaknis (norimas plotas)/kvadratinė šaknis (p)
d ij = atstumas nuo j centroido iki viršūnės i

Kiekvienas daugiakampis daro jėgą (F ij) nuo savo centroido iki viršūnių/mazgų ant visų daugiakampio ribų, įskaitant to paties daugiakampio viršūnes/mazgus, kurie daro jėgą. Teigiama jėgos vertė atstumia viršūnę nuo centroido, o neigiama jėga traukia ją į centroidą. Kiekvieno ribinio mazgo jėga, apibendrinta kaip vektorinis rezultatas iš visų daugiakampių, pagaliau perkelia viršūnę į naują vietą. Pagal algoritmą kiekvienos daugiakampio daromos jėgos stiprumas nustatomas pagal pasirinktą kintamąjį ir siūloma proporcingai skirtumui tarp srovės ir norimo daugiakampio ploto. Dabartinis plotas yra tikrasis daugiakampio plotas, o norimas plotas yra iškraipytas galutinės kartogramos plotas pagal pasirinktą temos kintamąjį. Pavyzdžiui, kuriant JAV valstijų kartogramą pagal gyventojų skaičių, Delavero valstija turėtų daryti didelę jėgą, nes jos gyventojų masė yra didesnė už teritorijos masę. Montanos valstijoje situacija yra priešinga.

Kiekvienos kartojimo metu apskaičiuojama jėgų suma iš visų daugiakampių, veikiančių kiekvieną žemėlapio viršūnę, kad būtų išstumta viršūnė. Pasibaigus kiekvienai iteracijai, kiekvieno daugiakampio plotas perskaičiuojamas ir lyginamas su jų „norimu plotu“. Kai skirtumas tarp dviejų sričių yra mažesnis nei nurodyta riba, programa sustoja.

Siekiant išlaikyti gerą tikslumą, algoritmas perima atstumo mažėjimo koncepciją. Kai viršūnė yra arti daugiakampio centroido, iš to centroido daroma jėga yra stipri. Tolesnis būdas mažėja. Pvz., Ohajo centrinis centras daro daug didesnę jėgą Kentukio ribų viršūnėms/mazgams nei Oregono, esančio toliau nuo Ohajo. Atstumo mažėjimo funkcija algoritme yra su koregavimu, kad būtų išvengta milžiniškos didelės jėgos, kai mazgas yra labai arti daugiakampio vidurio. Kai atstumas nukrenta iki nulio, koregavimas sukuria nulinę vertę.

Nors nuo 1973 m. Buvo išleista daug darbų, skirtų kartogramos sudarymui, Dougeniko algoritmą praktiškiau įgyvendinti „ArcView ’s“ aplinkoje. Šis algoritmas išimtinai naudoja koordinačių informaciją ir nepriklauso nuo būdingos topologinės informacijos, kad projektuotų duomenis iš „normalios erdvės“ ir „146“ į „iškreiptą erdvę“. „ArcView“ idealiai atitinka reikalavimus, nes formos failo struktūra neleidžia daryti topologinio nuoseklumo. „Shapefiles“ yra paprasti, ne topologiniai formatai, skirti saugoti geografinių objektų geometrinę vietą ir atributų informaciją (Esri, 1994b). Be to, „ArcView“ į objektą orientuota programavimo kalba „Avenue“ suteikia galingą funkciją, palengvinančią grafinės vartotojo sąsajos (GUI) pritaikymą, leidžiančią vartotojui sukurti kartogramas, tiesiog vykdant draugiškas instrukcijas.

„Avenue“ programavimo įgyvendinimas

Sprendimai dėl daug laiko reikalaujančios procedūros

Kaip ir dauguma algoritmų, paskelbtų kartogramos sudarymui, Dougeniko algoritmui reikia daug pakartojimų. Taikant žemėlapį su daugiakampiais, kuriuose yra daug viršūnių/mazgų, jis gali būti labai lėtas (nuo valandų iki dienų). Pavyzdžiui, JAV formos failą (iš Esri duomenų) sudaro daugiau nei 13 000 viršūnių/mazgų. Vieną iteracinį veiksmą reikia atlikti net per 15 minučių net naudojant didelės spartos procesorių.

Kadangi „ArcView“ formos faile nesaugoma aiški topologija, viršūnės ant bendrų ribų saugomos du kartus. Dėl to visos viršūnės/mazgai, esantys bendrose ribose, apskaičiuojami du kartus per kiekvieną iteraciją. Tai žymiai sulėtina statybos procesą.

Yra dvi galimybės išvengti nereikalingo skaičiavimo. Vienas iš jų yra patikrinti visų daugiakampių topologinį ryšį, kad viršūnės/mazgai ant bendrų ribų būtų skaičiuojami tik vieną kartą. Kuriant vidutinio sudėtingumo kartogramą, šis metodas gali sutaupyti maždaug trečdalį laiko. Tačiau kadangi kiekviena iteracija iškraipo žemėlapį skirtingai, prieš kiekvieną iteraciją būtina patikrinti topologinį ryšį.

1 pav. JAV kartograma pagal 1990 m. Populiaciją

2 paveikslas. Ohajo apskričių kartograma pagal 1997 m. Gyventojų skaičių

Mūsų sprendimas yra padalinti visus daugiakampius į polines linijas topologiškai ir sudėti į vieną polilinijų sąrašą. Kadangi kiekviena sąrašo daugiakampė linija yra unikali, apskaičiuojant viršūnes/mazgus iš polilinijos, nebus kartojamas darbas. Be to, šis metodas leidžia tik vieną kartą patikrinti topologinius ryšius, o tai daroma prieš skaidant daugiakampius. Palyginti su pirmuoju variantu, galima sutaupyti dar 20 procentų laiko. „Avenue“ raktas yra sukurti tikslų indeksą tarp atskirų daugiakampių ir originalių daugiakampių. Toks indeksas turėtų užtikrinti, kad baigiant visus skaičiavimus daugiakampiai būtų atkurti į daugiakampius be klaidų.

Kaip nurodyta aukščiau, kiekvienas daugiakampis ir jo sudedamosios linijos įrašomi naudojant unikalų indeksų sąrašą. Pavyzdžiui, pagal „Polygon1_Index“ sąrašo indekso numerį iš „PolylineList“ galima rasti visas daugiakampio1 ribines linijas.

Kelių žiedų daugiakampių tvarkymas

Charleso Jackelio ir#146 -osios prospekto scenarijai (1997 m.), Skirti kartogramos žemėlapiui, reikalauja daryti prielaidą, kad visi daugiakampiai susideda iš vieno žiedo. Akivaizdu, kad taip nėra. 19 iš 51 JAV valstijų yra daugiakampiai, sudaryti iš kelių žiedų, pavyzdžiui, Rodo saloje yra 3 žiedai, o Aliaskoje - 32 žiedai. Jis pasiūlė redaguoti figūros failą prieš paverčiant jį kartograma, proporcingai paskirstant atributo vertę kiekvienam žiedui pagal jo atitinkamą plotą. Akivaizdu, kad prielaida dėl proporcingo atributo ryšio su plotu yra abejotina. Furthermore, redistributing attributes into multi-rings is not a trivial task.

Instead of asking the user to redistribute the attributes to multi-rings, we developed a routine for identifying a centroid for each multi-ring polygon. The first step is to find out the centroid for each ring part using Avenue function "ReturnCentroid". Creating a list containing all rings and using a "for-next" loop can easily get the results. Secondly, average the coordinates of these centroids based on their respective area. Figure 3 shows the final centroid of Michigan State.

Figure 3: Centroid of Michigan State

Controlling Iteration and Precision

The precision of a cartogram can be described in terms of total SizeError mean. SizeError is calculated as the ratio of the polygon’s final area over its "desired" area. In general, a total SizeError mean of less than 10 percent is acceptable for most users. Fewer iterative steps result in larger total SizeError mean. The more iterations, the less total SizeError mean and the more precise cartogram.

The number of iteration needed to produce a satisfied cartogram varies with conditions of the data and polygon being distorted. For example, 24 iterations are required to construct a cartogram for a US map based on population with total size error mean less than 10 percent, while producing a similar map for Ohio counties need only 10 iterations. It should be noted that the user does not know how much iteration they really need. For some instance, user may not be satisfied with the result even after a large number of iterations. They may want to continue with some extra iterations. Therefore, keeping the current result and allowing the program to continue without restarting from the very beginning is of great importance. In the Avenue scripts, an "if " statement provides such option. If the user wants to obtain a more accurate map, the calculation will continue for extra iterations based on the user’s input. By default, the script stops when the total SizeError mean is less than 10%, even if the number of iterations executed is less than what the user specified. This percentage is adjustable.

Figure 4: Iteration number control interface

Generalizing Polygons to Improve Performance

Generalizing polygons before constructing them into cartogram can considerably speed up the calculation. There is an Avenue script for generalizing polygon boundaries. However, it destroys the original structure of the shapefile, and causes the cartogram algorithm to produce sliver polygons.

In our Avenue program, since polygons have been split into unique polylines with corespondent index list based on their topologic relationship, it is feasible to do generalization without corrupting the polygons.

Figure 5: Option for generalizing polygon

For maps with panhandle polygon, like the shape of State Oklahoma, it is possible to produce crossing borders due to one weakness of the algorithm. However, by inserting one (or more) vertex along the polyline, the program can effectively avoid crossing.

To obtain more correct and precise cartogram, it is the users’ responsibility to ensure their map has proper projection and map units. Non-projection data can not be accepted because the result is not accurate if longitude and latitude is used to calculate polygon area or distance.

Constructing a cartogram has been a formidable task. With the improvement on performance, polygon generalization and others, our script can create cartograms for complex maps in ArcView shapefile format. The eight page long script is not included due to page limits of this publication.

Dougenik, J. A, N. R. Chrisman, and D. R. Niemeyer. 1985. An algorithm to construct continuous cartograms. Professional Geographer 37:75-81

Charles B. Jackel. 1997. Using ArcView to create contiguous and noncontiguous area cartograms. Cartography and Geographic Information System 24: 101-109

Sabir M. Gusein-Zade and Vladimir S. Tikunov. 1993. A new technique for constructing continuous cartograms. Cartography and Geographic Information System 20: 167-173

Cook, G. D. 1977. The presentation of two algorithms for the construction of value-by-area cartograms. M.Sc. thesis, University of Washington, Seattle, Wa.

Esri (Environmental Systems Research Institute, Inc.) 1997, Introducing ArcView. Esri, Redlands, Ca.


Sintaksė

Funkcijų klasė arba funkcijų sluoksnis, kuriam norite sukurti grupes.

Sveikojo skaičiaus laukas, kuriame yra skirtinga kiekvienos įvesties ypatybių duomenų rinkinio funkcijos vertė.

Sukurta nauja išvesties ypatybių klasė, apimanti visas funkcijas, nurodytus analizės laukus ir lauką, nurodantį, kuriai grupei priklauso kiekviena funkcija.

Kuriamų grupių skaičius. Išvesties ataskaitos parametras bus išjungtas daugiau nei 15 grupių.

Laukų, kuriuos norite naudoti norėdami atskirti vieną grupę nuo kitų, sąrašas. Išvesties ataskaitos parametras bus išjungtas daugiau nei 15 laukų.

Nurodo, ar ir kaip erdviniai objektų santykiai turėtų riboti sukurtas grupes.

  • CONTIGUITY_EDGES_ONLY - Grupėse yra gretimų daugiakampių funkcijų. Tik daugiakampiai, turintys kraštą, gali būti tos pačios grupės dalis.
  • CONTIGUITY_EDGES_CORNERS - Grupėse yra gretimų daugiakampių funkcijų. Tos pačios grupės gali būti tik daugiakampiai, turintys kraštą ar viršūnę.
  • DELAUNAY_TRIANGULATION - tos pačios grupės funkcijos turi bent vieną bendrą natūralų kaimyną su kita grupės funkcija. Natūralūs kaimynų santykiai grindžiami Delaunay trikampiu. Konceptualiai „Delaunay Triangulation“ sukuria nepersidengiančią trikampių tinklelį iš funkcinių centrų. Kiekviena ypatybė yra trikampio mazgas, o mazgai, turintys kraštus, laikomi kaimynais.
  • K_NEAREST_NEIGHBORS - tos pačios grupės funkcijos bus arti viena kitos, kiekviena funkcija bus bent vienos kitos grupės funkcijos kaimynė. Kaimynų santykiai grindžiami artimiausiomis K funkcijomis, kur parametrui „Kaimynų skaičius“ nurodoma sveiko skaičiaus vertė K.
  • GET_SPATIAL_WEIGHTS_FROM_FILE - Erdviniai ir pasirinktinai laikiniai santykiai apibrėžiami erdvinio svorio failu (.swm). Sukurkite erdvinių svorių matricos failą naudodami įrankį „Generate Spatial Weights Matrix“.
  • NO_SPATIAL_CONSTRAINT - Funkcijos bus sugrupuotos naudojant tik duomenų erdvės artumą. Funkcijos nebūtinai turi būti arti viena kitos erdvėje ar laike, kad taptų tos pačios grupės dalimi.

Nurodo, kaip skaičiuojami atstumai nuo kiekvienos funkcijos iki gretimų funkcijų.

  • EUCLIDEAN-tiesus atstumas tarp dviejų taškų (nesvarbu, kaip skristi)
  • MANHATTAN- atstumas tarp dviejų taškų, išmatuotų išilgai ašių stačiu kampu (miesto blokas), apskaičiuotas sudedant (absoliutų) skirtumą tarp x ir y koordinačių

Šis parametras įgalinamas, kai erdvinių apribojimų parametras yra K_NEAREST_NEIGHBORS arba vienas iš CONTIGUITY metodų. Numatytasis kaimynų skaičius yra 8. K_NEAREST_NEIGHBORS šis sveikasis skaičius atspindi tikslų artimiausių kaimynų kandidatų, į kuriuos reikia atsižvelgti kuriant grupes, skaičių. Funkcija nebus įtraukta į grupę, nebent viena iš kitų tos grupės funkcijų yra artimiausias K kaimynas. Taikant CONTIGUITY metodus, ši vertė atspindi tikslų kaimynų kandidatų, į kuriuos reikia atsižvelgti tik salų daugiakampiuose, skaičių. Kadangi salų daugiakampiai neturi gretimų kaimynų, jiems bus priskirti kaimynai, kurie nėra gretimi, bet yra šalia.

Kelias į failą, kuriame yra erdviniai svoriai, apibrėžiantys erdvinius funkcijų ryšius.

Nurodo, kaip gaunamos pradinės sėklos, kai pasirinktas erdvinio apribojimo parametras yra NO_SPATIAL_CONSTRAINT. Sėklos naudojamos grupėms auginti. Pavyzdžiui, jei nurodysite, kad norite 3 grupių, analizė prasidės nuo trijų sėklų.

  • FIND_SEED_LOCATIONS - Sėklos funkcijos bus pasirinktos siekiant optimizuoti našumą.
  • GET_SEEDS_FROM_FIELD - Inicializavimo lauke esantys nulio įrašai bus naudojami kaip atskaitos taškai grupėms auginti.
  • USE_RANDOM_SEEDS - pradinės pradinės funkcijos bus pasirinktos atsitiktinai.

Skaitinis laukas, identifikuojantis sėklų ypatybes. Funkcijos, kurių vertė yra 1 šiame lauke, bus naudojamos grupėms auginti.

Visas sukuriamas .pdf ataskaitos failo kelias, apibendrinantis grupės charakteristikas. Šioje ataskaitoje pateikiama daug grafikų, padedančių palyginti kiekvienos grupės charakteristikas. Ataskaitos failo sukūrimas gali užtrukti daug laiko.

  • ĮVERTINTI - Bus vertinamos grupės nuo 2 iki 15.
  • DO_NOT_EVALUATE - grupių skaičiaus įvertinimas nebus atliekamas. Tai yra numatytasis.

Calculate geometry arcgis

The instructions provided describe how to calculate geometry in ArcGIS Pro. Access the Calculate Geometry Attributes tool by opening the attribute table and right-clicking the field to bring up the context menu. There is an option to 'Calculate Geometry' Use the following steps to calculate geometry: Expand the dataset for which you will calculate feature size. Click the location field button. Click Select unit and choose a unit from the menu ArcGIS geoprocessing tool that adds information to a feature's attribute fields representing the spatial or geometric characteristics and location of each feature, such as length or area and x-, y-, z-, and m-coordinates. Back to Top. Calculate Geometry Attributes (Data Management) In this topic. Santraukos naudojimo sintaksės kodo pavyzdys Aplinkos Licencijavimo informacija Santrauka. Adds. ArcGIS geoprocessing tool that adds information to a feature's attribute fields representing the spatial or geometric characteristics and location of each feature, such as length or area and x-, y-, z-, and m-coordinates

ArcGIS-Geoverarbeitungswerkzeug zum Hinzufügen von Informationen zu den Attributfeldern eines Features, die den räumlichen oder geometrischen Eigenschaften und der Position des Features entsprechen, darunter Länge, Fläche oder die X-, Y-, Z- und M-Koordinaten CalculateGeometryAttributes example (Python window) The following Python window script demonstrates how to use the CalculateGeometryAttributes tool. import arcpy arcpy.env.workspace = rC:\data\City.gdb arcpy.CalculateGeometryAttributes_management (roads, [ [ Length_mi, LENGTH ], [ Stops, POINT_COUNT ]], MILES_US Mit dem Werkzeug Geometrie berechnen können Sie auf die Geometrie der Features in einem Layer zugreifen. Das Werkzeug kann je nach der Geometrie des Eingabe-Layers Koordinatenwerte, Längen und Flächen berechnen. In projizierten Koordinatensystemen können Sie nur die Fläche, die Länge und den Umfang von Features berechnen

How To: Calculate geometry in ArcGIS Pr

Calculations can be performed using either Python or VBScript. Python is the recommended scripting language for ArcGIS. Use Python if you want access to geoprocessing functionality, including feature geometry. The adoption of Python as the scripting language for ArcGIS provides many opportunities for performing calculations Use the following procedure to create a new field and perform Calculate Geometry: Start ArcMap, and right-click the desired feature class > Open Attribute Table. Click Table Options > Add Field. Under Type, select Double as the data type to allow possible decimal points arcgis-pro-2.4 We need the ability to calculate the selected records and the ability to choose the geometry property based on the selected projection, not the coordinate system of the underlying data.. Update: Per post by Kory Kramer, geoprocessing tools do selected records by default so scratch that part, already does it The two Arcade Geometry Functions that can be used to calculate area are: Area - this function performs a planar measurement and the output depends on the Projected Coordinate System of the feature service. AreaGeodetic - this function can be more accurate as it takes earth's curvature into account when calculating Two geometries touch when the intersection of the geometries is not empty, but the intersection of their interiors is empty. Pavyzdžiui, taškas paliečia daugiakampę liniją tik tuo atveju, jei taškas sutampa su vienu iš linijos galinių taškų. Only True relationships are shown in this illustration. union (other) Constructs the geometry that is the set-theoretic union of the input geometries. The two.

Calculate geometry—ArcGIS Insights Documentatio

Right-click the field header, and select Calculate Geometry. In the Calculate Geometry dialog box, select the option Use coordinate system of the data frame, and select the desired units as the requirement. The value calculated is shown in the attribute table. ArcGIS Help: Calculating area, length, and other geometric propertie Calculate Area Disabled [SOLVED] , Calculate Geometry Tool is Disabled, Field Greyed, ArcMap ArcGIS field in my attribute table but I cannot calculate the ar.. On my attribute table, I can calculate a field but I don't see the handy Calculate Geometry that I found in 10.2.2. Do I need to go back to a script to add a Latitude and Longitude field in my attribute table? I am using a File Geodatabase table in ArcGIS Pro 1.0 (Prerelease 2, Build 169

Calculate Geometry Attributes (Data Management)—ArcGIS Pro

  • ArcGIS
  • I then created a DOUBLE type field and used Calculate Geometry set to Square Miles. The result was the same as yours for the small features - 0. As expected, the large feature had a calculated value. I also calculated Hectares (10000 Sq. Meters) and Acres (4046.86 Sq. Meters) and did get a result albeit very small numbers
  • Upon running the Calculate Geometry function on a numerical field in an attribute table in ArcMap, the returned results only store whole numbers and not decimal values. Cause. This issue occurs when running the Calculate Geometry function on a long or short integer type attribute field. Long and short integers do not store decimal values. Solution or Workaround. Create a new float or double.

If offsetDistance > 0, then the offset geometry is constructed to the right of the input geometry, if offsetDistance = 0, then there is no change in the geometries, otherwise it is constructed to the left. Paprastam daugiakampiui išorinių žiedų kryptis yra pagal laikrodžio rodyklę, o vidinių - prieš laikrodžio rodyklę. So the right side of a simple polygon is always its inside Look at the ArcGIS Desktop Help under 'Calculate Field Examples', towards to the bottom it shows how to calculate geometry. For example Area: !Shape.Area! Length: !Shape.Length! X/Y/Z/M for first point in a line !Shape.firstPoint.X! If you are looking to convert units (e.g. KM to Miles) you can even do that within the expression. So drag in the 'Calculate Field' tool to Modelbuilder, and then. Skaičiuojama Geometrija į ArcGIS Pro. Question asked by jborgion on Mar 23, 2018 Latest reply on Mar 26, 2018 by jborgion. Like • Show 1 Like 1 Comment • 7 In a file geodatabase feature class, I've added two new fields, SqMiles and Acres. It appears that the good ol' days of ArcMap and using the apskaičiuoti geometrija tool are gone, and little different work flow is required. See Add Geometrija. ARCGIS : How to calculate area, length, and other geometric properties? - Duration: 2:09. geomatika 11,890 views. 2:09. Reclassify & Convert Raster to Shapefile ( Polygon) & Calculate Area Using.

Calculate Geometry Attributes—Help ArcGIS Deskto

I've worked with customers where there has been a need to calculate geometry from two fields. While many inputs provide the option to do this for you, in some cases you will need to use the Field Calculator to do this. For example, a customer has Calls For Service (CFS) being added to a database table. The latitude and longitude values are stored in a text field where there is no formatting. Calculating the geometry of an entity is a fundamental geoprocess that must be known when starting with ArcGIS. To calculate the area or surface, perimeter or length of an entity is required to know the geometry of each layer. It is also recommended that each layer has an assigned coordinate system. In the following process you can apply to calculate the area and perimeter in a layer of. Calculation rules are used to automatically populate attribute configurations on a feature. They can be created as immediate calculation rules or batch calculation rules, depending on when the rule needs to be evaluated as follows: Immediate calculation rules—Rule evaluation occurs immediately during edit operations. The type of triggering event specified during rule creation allows rule.

Geometry Service Geometry Service To support calculate with versioned data, the feature service must be published from ArcGIS Pro referencing a registered data source. Neither the Shape field nor system fields can be updated using calculate. System fields include ObjectId and GlobalId. See Calculate a field for more information on supported expressions. Request parameters. Parameter. Calculating geometry area in ArcGIS for Desktop using ArcPy? 1. CalculateField with variables. 4. Using UNC pathname with Calculate Field tool in ArcPy? 1. Calculate text field using python script and keeping preceding zeroes. 3. Apskaičiuokite daugiakampio plotą QGIS 2.18. 2. Using Python Script tool in ModelBuilder to check if field exists, if not, create one? 1. Stand alone Calculate Field script. . To learn more about Python expressions, see Calculate Field Python examples.. To learn more about Arcade expressions, see the ArcGIS Arcade guide.. To learn more about SQL expressions, see Calculate field values.. When used with a selected set of features, such as those created from a query in Make Feature Layer or Select Layer By Attribute, this tool will only update the selected records The goal is to calculate a theoretical crop yield based on soil quality, but there is no way to measure the amount of soil in each parcel because ArcGIS Pro will not make the measurement because the data is not versioned. I cannot publish it as a web layer since selections are forbidden to export. I am not interesting in publishing my unfinished work either. If there is a way to go into the.

Geometry Service - Calculate geometry. Explore in the sandbox Open in CodePen View live sample Download as a zip file Description. This example shows how you can use an ArcGIS Server geometry service to measure polygon areas and perimeter lengths in your Web application. When you draw a polygon with the mouse, the Draw toolbar captures the polygon's geometry. This sample passes the geometry to. Often, one needs to calculate area, perimeter, or length for features in ArcGIS. This can be accomplished using the Calculate Geometryfunction in an attribute table. Please note that you can also calculate the X and Y coordinates of a polygon or line centroid using this function arcgis.geometry module calculation of the input geometries. The type can be one of the following values: planar - Planar measurements use 2D. Euclidean distance to calculate area and length. Th- should only be used if the area or length needs to be calculated in the given spatial reference. Otherwise, use preserveShape. geodesic - Use this type if you want to. calculate an area or length. Calculating geometry in ArcGIS allows you to find the area and perimeter of your polygons. Here are the steps for calculating the area of a polygon using ArcGIS. These steps can also be replicated for calculating the perimeter of a polygon or the length of a line file. You can use these steps to find out the acreage of a polygon by loading in a GIS dataset that uses a map projection that uses.

Geometrieattribute berechnen—Hilfe ArcGIS Deskto

Calculate geometry not working in ArcGIS Pro? Ask Question Asked 2 years ago. Active 2 years ago. Viewed 1k times 2. I have a set of points whose x and y coordinates I would like to add to the attribute table. The points are stored as a feature class in a geodatabase and I have ensured that they have the proper co-ordinate system (World Mercator). I have tried using both Calculate Geometry. Calculating geometry area in ArcGIS for Desktop using ArcPy? 1. Everything but 'property' greyed out in calculate geometry. 2. Calculate geometry with Python? 3. Apskaičiuokite daugiakampio plotą QGIS 2.18. 0. Calculate Geometry for Area is 0 in Arcmap. 4. How to Get QGIS to calculate Area in Layer's Units? 3. How to calculate area of polygon using ArcGIS system tools? Hot Network Questions First. As the SQL calculation interface in ArcGIS Online does not support this, use Arcade for these types of calculations. Caution: Calculations are immediately saved to the feature layer. If you overwrite an existing value in error, you'll need to calculate again to change the value back. Arcade example. This example uses the Replace function to change the British spelling (colour) to the American. However, when calculating line length (but not area), ArcGIS can calculate the geodesic distance, which should result in an even more accurate result. So instead of using the Calculate geometry tool, use Field calculator, select the Python parser, and enter the following expression

Geometrieattribute berechnen (Data Management)—ArcGIS Pro

In Ergänzung zum ArcMap-Oberflächen-Werkzeug Calculate Geometry bietet das Toolbox-Werkzeug Add Geometry Attributes eine Menge weiterer berechenbare Geometrie-Eigenschaften. Neben den weiteren Eigenschaften kann nun das Werkzeug zur besseren Automatisierung von Arbeitsprozessen im ModelBuilder und in Python-Skripten verwendet werden Is there another use for Calculate Geometry aside from calculating area, length and points? I already read the help section ArcGIS Help (10.2, 10.2.1, and 10.2.2) and it's very informative.. However I was told today that you can use calculate geometry to check that the coordinates of a feature are correct The select by attributes tool, and the calculate geometry tool. In this lecture I showed you how to create selections using the select by attributes tool, but with exact parameters and also by using partial matches. I also showed you how to add new fields and calculate geometry into them. In the next lecture we're going to continue right where we left of here and we're going to use the Select.

Berechnen von Fläche, Länge und anderen - ArcGIS Deskto

  1. Create an X field and Y field on your attribute table. Make sure the field type is able to hold decimal places, here we are using double as a field type. 2. Right Click the X field and click the Calculate Geometry
  2. Geometry calculations in ArcGIS are planimetric—in other words, take place in projected space, not spherical or geodesic space. You can only calculate the area, length, or perimeter of features if the coordinate system being used is a projected coordinate system
  3. geometry (Required) A geometry that defines the area of interest. The location can be an envelope or a polygon. The structure of the geometry is the same as the structure of the JSON geometry objects. geometryType (Required) The type of geometry specified by the geometry parameter. The geometry type can be an envelope or a polygon
  4. Calculate Field Dissolve Boundaries Filter by Expression Filter by Time Range Filter by Geometry Map Fields Merge Layers Overlay Layers Project Select Fields. Summarize data Aggregate Points Join Features Reconstruct Tracks Summarize Attributes Summarize Within. Use proximity Create Buffers Calculate Distance Snap to Network. Schedule recurring analysis Schedule recurring big data analysis.
  5. Geometry B 45° Bearing Calculator or. Tracking & Asset Recovery Real-Time Analytics Design. Range Fan Calculator • Use a Range Fan Calculator when you need to:-Construct a polygon foreword of an event's point geometry-Represent the visual or contextual range of an event record • Requires a range, bearing, and arc angle value as constants, or from existing fields to calculate TrackID.
  6. At ArcGIS Desktop 9.2, a new tool in ArcMap lets you perform calculations on the feature geometry in the attribute tables of feature layers. The Calculate Geometry tool calculates lengths areas and x,y coordinates. In previous releases, these operations were carried out by writing custom Visual Basic for Applications (VBA) code. Now these fields can be generated through a simple menu choice.

Calculate Field examples—Help ArcGIS Deskto

  • The Field Calculator (Regular Expression) Processor can be used to leverage the power of regular expressions to identify a pattern within a target field and extract the substrings from received events. The extracted substrings are either written back to the target field, replacing the field's original value, or written to a new field. The processor does not support the general mathematic.
  • This video shows you how to calculate latitude and longitude coordinates using Esri's ArcGIS Pro desktop software. Coordinates can be calculated in a layer's..
  • Geometry objects can be used instead for both input and output to make geoprocessing simpler. Geometry objects can be created from scratch using Geometry, Multipoint, PointGeometry, Polygon, or Polyline classes. Syntax . Geometry (geometry, inputs, , , ) Parameter: Explanation: Data Type: geometry. The geometry type: point, polygon, polyline, or multipoint.
  • Reclassify & Convert Raster to Shapefile ( Polygon) & Calculate Area Using ArcGIS - Duration: 10:01. Terra Spatial 37,897 views. 10:01. The first 20 hours -- how to learn anything.

Problem: The Calculate Geometry tool is disabled on

Field Calculator in ArcGIS Pro. The ArcGIS field calculator can save a person time and allow for fairly quick data cleanup IF you can remember how to use it. I don't know about you, but for me the layout of the field calculator, the separation of the formula field and the code block area and the minor changes from standard Python formatting are enough to send me straight to the Google search. Calculate Geometry i ArcGIS 10. datastrukturer, arcgis. Genom verktyget Calculate Geometry är det möjligt att få fram geometriska värden för objekt i ett kartlager, och de erhållna värdena förs in i lagrets attributdata. Ett villkor är dock att kartlagret använder ett projicerat koordinatsystem. (Sweref 99 är exempelvis ett projicerat kooordinatsystem). Via Calculate Geometry ges.

The geometry service helps applications do geometric calculations such as buffering, simplifying, calculating areas and lengths, and projecting. Additionally, the ArcGIS Web APIs use the geometry service to create and modify feature geometries during web editing. The geometry service provides an alternative to doing these calculations using fine-grained ArcObjects or a geoprocessing service Kegunaan Calculate Geometry ini saya buat karena teringat awal-awal menggunakan software ArcGIS. Saya kebingungan mencari luasan area tanpa pikir panjang ya sudahlah saya hanya menggunakan tool Measure dengan cara digitasi batas luarnya saja, hasilnya ya cukup jelek karena diperlukan presisi yang baik ketika digitasi batas luarnya If the geometries intersect, the minimum distance is 0. Both geometries must have the same projection. equals (second_geometry) Indicates if the base and comparison geometries are of the same shape type and define the same set of points in the plane. This is a 2D comparison only M and Z values are ignored. Only True relationships are shown in this illustration. getArea (type) Returns the area. 3. Longitude 필드를 우클릭 하고 Calculate Geometry를 선택하세요. 4. Calculate Geometry 대화 상자에서, Property 메뉴에 들어가서 'X Coordinate of Centroid' 를 선택하고 OK를 클릭 하세요. 5. Latitude 필드를 우클릭 하고 Calculate Geometry를 선택하세요. 6. Calculate Geometry 대화 상자에서.

ArcGIS Pro Calculate Geometry Fixes GeoNet, The Esri

  1. To calculate geometry with the standard ArcGIS tools, the field for calculated data entry must be created in the attribute table in advance. At that, only layer or data frame coordinate system can be used for calculation, and only one geometry parameter can be calculated per one operation
  2. Geometry calculations in ArcGIS are planimetric—in other words, they take place in projected space, not spherical or geodesic space. You can only calculate the area, length, or perimeter of features if the coordinate system being used is a projected coordinate system. If the data source uses a geographic coordinate system, such as WGS 1984, and is therefore unprojected, you can use the.
  3. Use geometry-based functions (ex: Population Density, buffer, how many things are within a distance of me) Data cleanup (ex: fixing incorrect values or mis-typed field values) How to Calculate New Fields with Arcade in ArcGIS Online: 1) To start, choose to add a new field, or choose the field you want to calculate values for. This can be done.

Understanding Geometric Processing in ArcGIS intersecting line segments by calculating their intersection point, moving that intersection to a grid point, then updating the set of four new segments to be coincident on it. A segment can also be cracked by a nearby endpoint, called a projection crack point. Nearby : in figure 7(b) means that segment B is less than : 2. times the cluster. Then right click on this column and select calculate geometry tool. when you select this tool a window will appear that say which geometry you want to calculate. you should choose Perimeter and.

About making field calculations. Note: This topic was updated for 9.3.1. Performing calculations on feature geometry. If you're working with an attribute table of a feature layer, you can easily calculate the area, perimeter, length, coordinates of the centroid, coordinates of a point, or coordinates of a start or end point using the Calculate Geometry dialog box ArcGIS API for Silverlight - Library Reference: Length(Polyline) Method : See Also Send comments on this topic: ESRI.ArcGIS.Client.Geometry Namespace > Geodesic Class > Length Method: Length(Polyline) Method: Visual Basic (Declaration) C# polyline The polyline to calculate the length for. Calculates the length of a polyline using WGS84-ellipsoid great circles between each vertex. Sintaksė. For the Calculate Geometry window, enter the following parameters: For Property, choose Area. For Area Unit, choose Acres. For Coordinate System, choose Current Map [Map]. Spustelėkite Gerai. The Acres field in the attribute table fills with values. Now you know the acreage of each stand. Uždarykite atributų lentelę. Find the acreage of aspen stands. Next, you'll create a bar chart to find out how many. Skaičiuojama Geometrija and Drainage Density (ArcGIS 10.3.x) Prior to beginning the process of calculating drainage density for a basin or sub-basin, it is important to ensure that you have all of the necessary data to perform the analyses. This includes the lengths for all channels (rivers, streams, etc.) that fall within the basin boundaries, as well as the value for the total area of the basin. ArcGIS REST Services Directory Login | Get Token: Home > services > Geometry (GeometryServer) Help | API Reference: JSON | SOAP: Geometry (GeometryServer) Service Description: The Geometry service is used by application developers to perform geometric calculations and web editing Supported Operations: Areas and Lengths Auto Complete Buffer Convex Hull Cut Densify Difference Distance Generalize.

If TypeOf (theGeometry) Is ESRI.ArcGIS.Client.Geometry.Polygon Then ' Cast the generic Geometry of the Graphic to a Polygon. Dim thePolygon As ESRI.ArcGIS.Client.Geometry.Polygon = CType (theGeometry, ESRI.ArcGIS.Client.Geometry.Polygon) ' Calculate the Geodesic.Area of the Polygon

Stack Overflow Public questions and answers Teams Private questions and answers for your team Enterprise Private self-hosted questions and answers for your enterprise Jobs Programming and related technical career opportunities Talent Hire technical talent Advertising Reach developers worldwid How can I identify and calculate horizontal curve based on ArcGIS map? I am trying to find out an approach to effectively and accurately identify and extract various horizontal curves (e.g. One of the most common tools for data management is the famous ArcGIS Field Calculator. When you are on a tabular view, by right- clicking on the field name (column), you find the option Field Calculator which opens the famous calculator: Similarly ArcGis Pro performs the same operation and opens the field calculator window: At first glance it looks like it's the same thing, with a.

ArcGIS geoprocessing tool used to perform field calculations. Calculate Field (Data Management) Summary Python expressions can use the geometry area and length properties with an areal or linear unit to convert the value to a different unit of measure (e.g. [email protected]!). If the data is stored in a geographic coordinate system and a linear unit (for example, miles) is supplied. ArcGIS ensures Chick-fil-A can get the right information to the right people across the organization. For example, Chick-fil-A real estate analysts use ArcGIS to access internal data such as new store locations, sales, and customer survey information Calculating field values in Calculate Field. Learn more about expressions in Calculate Field. The GeoAnalytics Tools that use expressions have different purposes, as well as limitations on which expressions can be applied. At 10.6, all expressions used in GeoAnalytics Server support Arcade. Learn more about Arcade Functions. Expressions in.

accomplished using the Calculate Geometry function in an attribute table. Note you can also calculate the X and Y coordinates of a polygon or line centroid using this function. See ArcGIS 10.2.2 help for detailed information. Under the help tab, select ArcGIS Resources, click desktop and search for Calculating area, length, and other geometric properties. Important note: You can only. Open ArcGIS Desktop, open your attribute table and right click on a field, underneath the option for Field Calculator you will see the geometry option. If, as above, you are using a geodesic coordinate system, it will tell you a lot of the tools are disabled but don't go re-projecting any datainstead, change your data frame to a projected coordinate system (applying correct. The Calculate Geometry geoprocessing tool calculates values into the desired field based on spatial values. The Calculate Geometry geoprocessing tool calculates values into the desired field based on spatial values. This website uses cookies and other tracking technology to analyse traffic, personalise ads and learn how we can improve the experience for our visitors and customers. We may also. How to calculate area or geometry in ArcGIS Posted by Salauddin at Sunday, July 10, 2016. Email This BlogThis! Share to Twitter Share to Facebook Share to Pinterest. No comments: Post a Comment. Newer Post Older Post Home. Subscribe to: Post Comments (Atom) Blog Archive 2011 (9) November (6) December (3) 2012 (5) January (3) March (1) November (1) 2013 (38) February (5) April (8) May (5) July.

Geometry Service - Calculate geometry. Explore in the sandbox View live sample Download as a zip file Description. This example shows how you can use an ArcGIS Server geometry service to measure polygon areas and perimeter lengths in your Web application. When you draw a polygon with the mouse, the Draw toolbar captures the polygon's geometry. This sample passes the geometry to the. ArcGIS internete. The mapping platform for your organizations. ArcGIS for Desktop. A complete professional GIS. ArcGIS for Server. GIS in your enterprise. ArcGIS for Developers. Tools to build location-aware apps. ArcGIS Solutions. Nemokami šablonų žemėlapiai ir programos jūsų pramonei. ArcGIS Marketplace. Apps and data for your organizatio Does anyone within the r/gis community have a solution or work around for calculating a new geometry field? input: arcpy.CalculateGeometryAttributes_management(dblock_prj, [M2, AREA], 'Square meters'

Calculate feature length or area. View live sample Download as a zip file Explore in the sandbox Description. This example shows how you can use an ArcGIS Server geometry service to measure polygon areas and perimeter lengths in your Web application. When you draw a polygon with the mouse, the Draw toolbar captures the polygon's geometry. This sample passes the geometry to the GeometryService. Naudojimas. Calculating statistics allows ArcGIS applications to properly stretch and symbolize raster data for display.. A skip factor controls the portion of the raster dataset that is used when calculating the statistics. The input value indicates the horizontal or vertical skip factor, where a value of 1 will use each pixel and a value of 2 will use every second pixel When Calculate Field evaluates your expression, it looks for null values and if any are found, the expression is not evaluated. This prevents divide-by-zero errors and other undefined operations. If your field contains null values, you need to turn it into a string (using str()) in the expression, even if it's already a string field. For example, if the VEGTYPE field in the example above. Introduction to ArcGIS Desktop and its Functionality: Calculate Shapefile Geometry in ArcGIS. This website uses cookies and other tracking technology to analyse traffic, personalise ads and learn how we can improve the experience for our visitors and customers


The convex_hull function is performed on a geometry service resource. It returns the convex hull of the input geometry. The input geometry can be a point, multipoint, polyline, or polygon. The convex hull is typically a polygon but can also be a polyline or point in degenerate cases.

geometries - The geometries whose convex hull is to be created. spatial_ref - The well-known ID or a spatial reference JSON object for

The cut function is performed on a geometry service resource. This function splits the target polyline or polygon where it’s crossed by the cutter polyline. At 10.1 and later, this function calls simplify on the input cutter and target geometries.

Inputs: cutter - The polyline that will be used to divide the target into pieces where it crosses the target.The spatial reference of the polylines is specified by spatial_ref. The structure of the polyline is the same as the structure of the JSON polyline objects returned by the ArcGIS REST API. target - The array of polylines/polygons to be cut. Geometrijos struktūra yra tokia pati kaip JSON geometrijos objektų, kuriuos grąžino „ArcGIS REST“ API, struktūra. The spatial reference of the target geometry array is specified by spatial_ref. spatial_ref - The well-known ID or a spatial reference JSON object for the output geometry.


Galite naudoti Decimate modifier: here's the documentation.

It has three different ways of operation: Sutraukti, Un-Subdivide ir Planar. Choose the one the most suits your needs and change the parameters until you reach the right compromise between smoothness of the surface and face count (which is updated live in the modifier box).

Click "Apply" when you are happy with the result. Please note that, if you are using UV maps, you should use the Planar mode and select Delimit: UV.