Daugiau

Sukurkite įrankį „Nustatyti maršruto vietas“, kuris konvertuoja M reikšmes

Sukurkite įrankį „Nustatyti maršruto vietas“, kuris konvertuoja M reikšmes


Turiu duomenų rinkinį su daugybe jūrų maršrutų, kuriems norėčiau matyti m reikšmes (laiką). „ArcGIS“ įrankis „Identify Route Locations“ veikia tiksliai taip, kaip aš noriu, tačiau rodoma „m“ reikšmė yra „Unix“ laiku, kurį nesunku perskaityti, jei apskritai. Turiu konvertuoti „Unix“ laikus į kažką skaitomo. Radau, kad naudojant datetime.datetime.fromtimestamp (). Isoformat () veikia puikiai, bet nenoriu, kad vartotojas kiekvieną kartą spustelėjęs išilgai laiko turėtų perskaičiuoti laiką ranka. Ar yra būdas sukurti įrankį, kuris veiktų kaip „Maršruto vietų nustatymas“, bet taip pat konvertuotų m reikšmes prieš jas rodant? Neįsivaizduoju, kaip prie jų prieiti. Apsidairiau ir vieninteliai mano rasti sprendimai buvo suskaidyti maršrutus atgal į taškus ir perskaičiuoti m reikšmes, bet aš geriau to vengiu.


Nesate tikri, kad įrankį, apie kurį kalbate, lengva padaryti. Kas neleidžia jums patiems keisti formų naudojant pagrindinę lauko skaičiuoklės išraišką? Galite paleisti geometrijos (formos) lauką, pvz. Ar keičiate viršūnių x, y reikšmes, kad pašalintumėte visas reikšmes iš trečiojo kablelio „ArcMap“?

ATNAUJINTAS ATSAKYMAS:

Aplinkos nustatymuose įjunkite M. Paleiskite šią išraišką lauke „Forma“:

def plineM (shp): arr = arcpy.Array (); pM = arcpy.Point () part = shp.getPart (0); n = len (part) for i in xrange (n): p = part.getObject ( i) pM.X = pX; pM.Y = pY; pM.Z = pZ pM.M = 7627.462-pM #jūsų transformacija čia arr.add (pM) return arcpy.Polyline (arr)

Naudojant:

plineM (! Forma!)