ST_PixelAsPolygons 光栅
ST_PixelAsPolygons rasterio
有没有办法使用光栅执行类似的功能,例如 ST_PixelAsPolygons?
我知道 rasterio.features.shapes 但这会输出相似像素的形状而不是所有像素的几何形状。我怎样才能得到所有像素的多边形和值?
rasterio/transform.py 提供了一个 xy(transform, rows, cols, offset)
函数,它 returns 网格单元格的位置在 (row,col)。
offset 参数允许您使用 'ul'
、'ur'
、'll'
、'lr'
、[=17= 指定单元格的每个 "corner" ]
然后您可以获得变换中每个单元格的直角坐标:
rows = [i for i in range(height) for j in range(width)]
cols = [j for i in range(height) for j in range(width)]
corners = []
for offset in ['ul','ur', 'lr', 'll']:
xs, ys = rasterio.transform.xy(transform,rows,cols,offset)
corners.append(zip(xs,ys))
cell_rects = zip(*corners)
cell_rects_with_indices = [
((row,col), rect)
for row,col,rect in zip(rows, cols, cell_rects)
]
有没有办法使用光栅执行类似的功能,例如 ST_PixelAsPolygons? 我知道 rasterio.features.shapes 但这会输出相似像素的形状而不是所有像素的几何形状。我怎样才能得到所有像素的多边形和值?
rasterio/transform.py 提供了一个 xy(transform, rows, cols, offset)
函数,它 returns 网格单元格的位置在 (row,col)。
offset 参数允许您使用 'ul'
、'ur'
、'll'
、'lr'
、[=17= 指定单元格的每个 "corner" ]
然后您可以获得变换中每个单元格的直角坐标:
rows = [i for i in range(height) for j in range(width)]
cols = [j for i in range(height) for j in range(width)]
corners = []
for offset in ['ul','ur', 'lr', 'll']:
xs, ys = rasterio.transform.xy(transform,rows,cols,offset)
corners.append(zip(xs,ys))
cell_rects = zip(*corners)
cell_rects_with_indices = [
((row,col), rect)
for row,col,rect in zip(rows, cols, cell_rects)
]