Читайте Shapefile из Google Cloud Storage, используя Dataflow + Beam + Python - PullRequest
0 голосов
/ 26 ноября 2018

Как можно прочитать Shapefile из Google Cloud Storage, используя Dataflow + Beam + Python.Я нашел только beam.io.ReadFromText, но Python для чтения шейп-файлов требует файл-подобный объект: shp.Reader(shp=shp_file, dbf=dbf_file) или шейп-файл.Я использую Python 2.7.

1 Ответ

0 голосов
/ 26 ноября 2018

Это способ сделать это:

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)
...