Tôi có
- GeoPandas 0.2.1 py27_0
- fiona 1.7.0 np110py27_1
- Python 2.7.10
được cài đặt trong môi trường Anaconda 2-4.1.1-Windows-x86. Tôi có thể xây dựng GeoDataFrame
bằng cách đọc các bộ dữ liệu đầu vào và vận hành dữ liệu nhưng việc lưu bộ dữ liệu đầu ra không bảo toàn hệ tọa độ.
import geopandas as gpd
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
world.to_file(driver='ESRI Shapefile',filename=r'C:\GIS\Temp\world_out.shp')
Nó world_out.shp
không chứa các tính năng và lược đồ của shapefile nguồn, nhưng hệ tọa độ không xác định ( <Unknown>
). Các world_out.prj
tập tin là 0 KB và không chứa bất cứ điều gì.
out = gpd.read_file(r'C:\GIS\Temp\world_out.shp')
print out.crs
>>> {}
Tôi đã thử nghiệm để thực hiện thao tác này bằng Fiona thuần túy và nó hoạt động tốt, bảo toàn crs
thông tin:
import fiona
datasrc_path = r'C:\Program Files (x86)\ArcGIS\Desktop10.4\TemplateData\TemplateData.gdb'
with fiona.drivers():
with fiona.open(datasrc_path,layer='cities') as source:
meta = source.meta
meta['driver'] = 'ESRI Shapefile'
meta['layer'] = source.name
with fiona.open(r'C:\GIS\CitiesFiona.shp', 'w', **meta) as sink:
for f in source:
sink.write(f)
Các CitiesFiona.prj
tập tin có chứa thông tin về hệ tọa độ.
Vì vậy, có vẻ như GeoPandas không thể đọc / ghi crs
khung dữ liệu vào tập dữ liệu đầu ra khi gọi to_file()
phương thức. Tôi đã thử gọi to_file()
vào được GeoDataFrames
xây dựng từ nhiều nguồn và bộ dữ liệu khác nhau và thông tin hệ tọa độ không bao giờ có trong bộ dữ liệu đầu ra.
Có ai gặp phải vấn đề này trước đây chưa? Bất cứ ai có thể kiểm tra điều này?
.prj
tệp có thông tin vềcrs
. Có thể là do tôi đã nâng cấpfiona
lênfiona 1.7.0 np110py27_2
.