2 votes

Lire un fichier Shapefile à partir de Google Cloud Storage en utilisant Dataflow + Beam + Python

Comment lire un fichier Shapefile depuis Google Cloud Storage en utilisant Dataflow + Beam + Python.
J'ai trouvé seulement beam.io.ReadFromText mais le lecteur de fichiers de forme de python exige un objet de type fichier : shp.Reader(shp=shp_file, dbf=dbf_file) ou un fichier de forme.
J'utilise Python 2.7.

2voto

samuq Points 394

C'est comme ça qu'il faut faire :

prj_file =  beam.io.gcp.gcsio.GcsIO().open(
    filenamePRJ, 
    mode='r',
    read_buffer_size=1677721600, 
    mime_type='application/octet-stream'
)

shp_file = beam.io.gcp.gcsio.GcsIO().open(
    filenameSHP, 
    mode='r',
    read_buffer_size=1677721600,
    mime_type='application/octet-stream'
)

dbf_file =  beam.io.gcp.gcsio.GcsIO().open(
    filenameDBF,
    mode='r',
    read_buffer_size=1677721600,
    mime_type='application/octet-stream'
)

sf = shp.Reader(shp=shp_file, dbf=dbf_file)      
euref  = osr.SpatialReference()
euref.ImportFromWkt(str(prj_file.read()))
wgs84 = osr.SpatialReference()
wgs84.ImportFromEPSG(4326)
transformation = osr.CoordinateTransformation(euref,wgs84)

1voto

Travis Webb Points 5765

Voici un paquet python qui inclut des connecteurs d'E/S Beam personnalisés pour la lecture de Shapefiles : https://github.com/GoogleCloudPlatform/dataflow-geobeam

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X