Hey Leute,
ich spiele gerade mit Satellitendaten rum und möchte unter anderem das Stadtgebiet München aus einer GeoTIFF
-Aufnahme herausschneiden – das klappt soweit auch, indem ich rasterio.mask() nutze. Allerdings möchte ich, dass der Bereich außerhalb der Stadt transparent ist und nicht so aussieht
Das Problem (so wie ich es einschätze) liegt logischerweise darin, dass numpy
-Arrays nur die Form eines Tensors annehmen können und die Stadt München leider davon abweicht bzw. dass irgendein Wert, im Falle von GeoTIFF
der nodata
-Wert, bei mir nodata = 0
(damit hast du nicht gerechnet, stimmt’s? :P), verwendet werden muss, um die Bereiche aufzufüllen, von dem ich nicht annehmen kann, dass er in meiner Geometrie nicht vorkommt, weshalb ich ihn nicht einfach herausfiltern kann. Oder anders gesagt: Wenn ich alles, was nodata
/0
entspricht filtere, können Lücken innerhalb des Stadtgebietes auftreten, was ich vermeiden möchte.
Die Metadaten (auch wenn nicht alle für meine Frage notwendig sind) des Bildes lauten:
{
'driver': 'GTiff',
'dtype': 'uint16',
'nodata': 0.0,
'width': 7711,
'height': 7821,
'count': 1,
'crs': CRS.from_epsg(32632),
'transform': Affine(30.0, 0.0, 574785.0, 0.0, -30.0, 5532615.0)
}
Mir fallen zwar ein bis zwei Workarounds ein, bspw. dtype
ändern, nodata < 0
verwenden, Form herausschneiden, nodata
filtern/transparent setzen, dytpe
auf Ursprungswert legen, aber schöner wäre natürlich eine direkte/konkrete Lösung. Vielleicht muss man auch den dtype
ändern, nodata < 0
verwenden, die Form herausschneiden, Transparenz eif
Deswegen möchte ich euch um Vorschläge bitten.
Das FSI-Forum kann keine (Geo)TIFF
-Dateien verarbeiten, falls ihr mit dem Bild selbst herumexperimentieren möchtet.