1 votos

Convertir polígono WKT a cadena de geometría ESRI en Python independiente script

Estoy intentando convertir una cadena WKT como esta en una cadena de geometría ESRI. Estoy buscando una solución que no requiera una licencia de ArcGIS.

Polígono ((-95,92442111883893574 30,18765532529553752, -95.80900212955509687 30.02964123282361086, -95.79388773810126168 30.11620547478649002, -95.88045198006413727 30.25360903345773167, -95.92442111883893574 30.18765532529553752))

Una cadena de geometría ESRI tiene el siguiente aspecto. (No es el mismo polígono)

{ "anillos" : [[[-97.06138,32.837],[-97.06133,32.836],[-97.06124,32.834],[-97.06127,32.832], [-97.06138,32.837]],[[-97.06326,32.759],[-97.06298,32.755],[-97.06153,32.749], [-97.06326,32.759]]] }

4voto

Vasya Novikov Puntos 111

Esta es mi mejor suposición usando shapely. No he mirado en la especificación, sólo va de su ejemplo:

import json
import shapely.wkt

wkt = 'Polygon ((-95.92442111883893574 30.18765532529553752, -95.80900212955509687 30.02964123282361086, -95.79388773810126168 30.11620547478649002, -95.88045198006413727 30.25360903345773167, -95.92442111883893574 30.18765532529553752))'

geom = shapely.wkt.loads(wkt)

rings = [list(geom.exterior.coords)] + \
        [list(interior.coords) for interior in geom.interiors]

esri = json.dumps({'rings': rings})

print(esri)

Da:

{"rings": [[[-95.92442111883894, 30.187655325295538], [-95.8090021295551, 30.02964123282361], [-95.79388773810126, 30.11620547478649], [-95.88045198006414, 30.25360903345773], [-95.92442111883894, 30.187655325295538]]]}

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X