1 votos

GeoDataFrame a shapefile y abrir en ArcMap

Tengo un gran csv con aproximadamente 5 millones de registros que tienen coordenadas de latitud y longitud que he intentado convertir a un shapefile con geopandas para no tener que golpear mi escritorio ArcMap con tanta información. Mi código es:

import pandas as pd
import geopandas as gpd
from shapely.geometry import Point

df = pd.read_csv('leases.csv')
geometry = [Point(xy) for xy in zip(df.longitude,df.latitude)]
df = df.drop(['longitude','latitude'], axis=1)
crs = {'init':'epsg4326'}
gdf = gpd.GeoDataFrame(df, crs=crs, geometry=geometry)
gdf.to_file(driver='ESRI Shapefile',filename="leases.shp")

Este código funciona bien y obtengo un shapefile de puntos que puedo cargar en ArcMap, pero cuando miro la tabla de atributos, los registros se desordenan. Un problema es que aparecen registros duplicados en la tabla de atributos que no existen, pero el número de registros sigue siendo correcto. Otro problema es en la imagen de abajo, donde los registros se muestran de forma incorrecta. enter image description here

He comprobado el csv y y ninguna de estas cuestiones están allí. Estoy tratando de averiguar si se trata de un problema ArcMap cargar esto, o un problema geopandas. He intentado ejecutar el código con sólo Arkansas por sí mismo (alrededor de 165.000 registros) y cuando cargo que en ArcMap que está muy bien y estos problemas no se producen.

1voto

gabor Puntos 612

¿Por qué no utilizar arcpy ? Si va a utilizar ArcMap, creo que es la mejor opción:

# import system modules 
import arcpy
from arcpy import env

try:
    # Set the local variables
    in_Table = r"path\to\leases.csv"
    x_coords = "longitude"
    y_coords = "latitude"
    out_Layer = "leases"
    out_dir = r"out\path"

    # Set the spatial reference
    spRef = r"Coordinate Systems\Geographic Coordinate Systems\World\WGS 1984.prj"

    # Make the XY event layer...
    arcpy.MakeXYEventLayer_management(in_Table, x_coords, y_coords, out_Layer, spRef)

    # Save to shapefile
    arcpy.FeatureClassToShapefile_conversion(out_Layer, out_dir)

except:
    # If an error occurred print the message to the screen
    print arcpy.GetMessages()

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