2017-07-11 4 views
1

Gibt es eine Möglichkeit, eine ähnliche Funktion wie ST_PixelAsPolygons mit Rasterio durchzuführen? Ich kenne rasterio.features.shapes, aber das würde die Form von ähnlichen Pixeln anstelle der Geometrie aller Pixel ausgeben. Wie kann ich die Polygone und Werte aller Pixel erhalten?ST_PixelAsPolygons rasterio

+0

Pingen @sgillies - er könnte vielleicht helfen? – kuanb

Antwort

1

rasterio/transform.py stellt eine xy(transform, rows, cols, offset)-Funktion zur Verfügung, die den Ort der Gitterzelle an (row, col) zurückgibt.

Der Offset-Parameter können Sie jede "Ecke" der Zelle spezifizieren mit 'ul', 'ur', 'll', 'lr'.

Anschließend können Sie die rechtwinkligen Koordinaten jeder Zelle erhalten in Ihrer Transformation:

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