Tengo un archivo de forma que se compone de un polígono cuyo límite está definido por un gran número de puntos. Quien hizo originalmente el archivo invertido las coordenadas de latitud y longitud, por lo que los datos muestran a 38 grados al este de Greenwich y a 122 grados al sur del ecuador, que está muy al sur del polo sur, o en el espacio, o en algún lugar en el imaginario de número de línea, o algo así. ¿Cómo puedo solucionar este problema? Yo podría hacer otra shapefile y de introducir manualmente las coordenadas correctas, pero este en particular polígono se define por varios cientos de vértices así que prefiero no hacerlo de esa manera. Hay una secuencia de comandos de python o GP herramienta que me pueda ayudar?
Respuestas
¿Demasiados anuncios?
steveax
Puntos
316
Usted puede hacerlo fácilmente con Python. Usted puede hacer lo siguiente en ArcMap de la Ventana de Python:
with arcpy.da.UpdateCursor("your_layer_name", ['SHAPE@XY']) as rows:
for r in rows:
rows.updateRow((r[0][::-1],))
Tendrás que actualizar la vista activa después. Usted puede hacer eso con el botón actualizar o arcpy.RefreshActiveView()
. Entonces usted debe ver los puntos de cambio.
EDITAR:
Acabo de leer tu pregunta de nuevo. Si desea omitir el punto de ajuste, e invertir las coordenadas de todos los vértices de los polígonos de sí mismos, el código se vuelve un poco más complicado, pero conserva el mismo principio general:
with arcpy.da.UpdateCursor("your_layer_name", ['SHAPE@']) as rows:
for r in rows:
# reverse points within polygon (supports multipart polygons as well)
rows.updateRow((arcpy.Polygon(arcpy.Array(arcpy.Array([arcpy.Point(p.Y, p.X) for p in part]) for part in r[0])),))
Ben
Puntos
11
kervin
Puntos
7620
mcintyre321
Puntos
5393