このhttp://tinyurl.com/odfbanuのような本当に単純なシェープファイルを少しラスタライズする必要があります。これは、米国のシェープファイルクーティン郡です。GDALRasterizeLayerはすべてのポリゴンをラスターに書き込みませんか?しかし、Giopandasやfionaを使用して、tiffの記述部分にrastraioを使用する方法があるかどうか疑問に思っていました。
したがって、私の目標は、ラスタライズして、共通の値(例ではLSAD)を共有するすべてのポリゴンに値を割り当てることです。
だから私はスレッドでshongololoに触発されたコードの最初を書きました: Pythonで属性に基づいてポリゴンをディゾルブします(シェイプリー、フィオナ)?。
from geopandas import GeoDataFrame
name_in = 'cb_2013_us_county_20m.shp'
#Open the file with geopandas
counties = GeoDataFrame.from_file(name_in)
#Add a column to the Geodataframe containing the new value
for i in range (len(counties)):
LSAD = counties.at[i,'LSAD']
if LSAD == 00 :
counties['LSAD_NUM'] == 'A'
elif LSAD == 03 :
counties['LSAD_NUM'] == 'B'
elif LSAD == 04 :
counties['LSAD_NUM'] == 'C'
elif LSAD == 05 :
counties['LSAD_NUM'] == 'D'
elif LSAD == 06 :
counties['LSAD_NUM'] == 'E'
elif LSAD == 13 :
counties['LSAD_NUM'] == 'F'
elif LSAD == 15 :
counties['LSAD_NUM'] == 'G'
elif LSAD == 25 :
counties['LSAD_NUM'] == 'I'
else :
counties['LSAD_NUM'] == 'NA'
本当に簡単なものなので、これらの形状を実際にティフに書き込むにはどうすればいいのかと思っています。私はそれが最良の選択肢であると信じていたので、Geopandasを使い始めましたが、フィオナの提案があれば、私もそれを受け入れます。
私はrasterioからコードを見つけました。これは形の良いジオメトリを取得して新しいラスターに書き込むことができるようですhttp://tinyurl.com/op49uek
# I guess that my goal should be to load my list of geometries under geometry to be able to pass it to rasterio later on
geometry = {'type':'Polygon','coordinates':[[(2,2),(2,4.25),(4.25,4.25),(4.25,2),(2,2)]]}
with rasterio.drivers():
result = rasterize([geometry], out_shape=(rows, cols))
with rasterio.open(
"test.tif",
'w',
driver='GTiff',
width=cols,
height=rows,
count=1,
dtype=numpy.uint8,
nodata=0,
transform=IDENTITY,
crs={'init': "EPSG:4326"}) as out:
out.write_band(1, result.astype(numpy.uint8))