Newbie ở đây đang vật lộn với GIS. Tôi cố gắng để vạch ra phường cho thành phố Milwuakee sử dụng shapefile được tìm thấy trên trang web của họ county website quận . Tôi đang theo chủ đề ở đây với một số thành công. Mã của tôi là cho:
from pyproj import Proj, transform
# wisconsing EPSG:32054
# epsg:4326 is for the entire world, wgs 84...not obvious
inProj = Proj(init='epsg:32054')
outProj = Proj(init='epsg:4326')
x1,y1 = 2560131.496875003, 406816.434375003
x2,y2 = transform(inProj,outProj,x1,y1)
print(x2,y2)
với đầu ra,
-65.70220967836329 43.08590211722421
Vấn đề là điều này là sai. Lon / lat cho Milwaukee là -87,863984 và 42,920816.
Thứ hai, làm thế nào tôi có thể làm điều này theo chương trình cho toàn bộ shapefile. Tôi muốn vẽ sơ đồ này vào bản đồ nền. Khi tôi cố gắng theo chủ đề này, tôi nhận được một mã lỗi:
with fiona.open("ward2012/ward.shp") as shp:
ori = Proj(init='epsg:32054' ),
dest= Proj(init='EPSG:4326',preserve_units=True)
with fiona.open('ward2012/MKE_wards_lat_lon.shp', 'w', 'ESRI Shapefile', shp.schema.copy(), crs=from_epsg(4326))as output:
for point in shp:
x,y = point['geometry']['coordinates']
point['geometry']['coordinates'] = transform(ori, dest,x,y)
output.write(point)
lỗi:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-139-a5079ab39f99> in <module>()
4 with fiona.open('ward2012/MKE_wards_lat_lon.shp', 'w', 'ESRI Shapefile', shp.schema.copy(), crs=from_epsg(4326))as output:
5 for point in shp:
----> 6 x,y = point['geometry']['coordinates']
7 point['geometry']['coordinates'] = transform(ori, dest,x,y)
8 output.write(point)
ValueError: not enough values to unpack (expected 2, got 1)