Wy are this 2 functions different?
from osgeo import gdal
import rasterio
class OrthophotoData:
@staticmethod
def get_transform_gdal(orthophoto_path):
# Using gdal
dataset = gdal.Open(orthophoto_path, gdal.GA_ReadOnly)
aux = dataset.GetGeoTransform()
dataset.Close()
dataset = None
return aux
@staticmethod
def get_transform_rasterio(orthophoto_path):
# Using rasterio
with rasterio.open(orthophoto_path) as src:
transform = src.transform
# rasterio's list order is different from gdal's
aux= (transform[2], transform[0], transform[1],
transform[5], transform[4], transform[3])
return aux
If I use the first one, my code works fine.
If I use the second one, an error occurs in some place of the code, apparently not related to the function.
The error is
[…] line 612, in my_func
image1, transform = mask(src, geoms, crop=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “…\env\Lib\site-packages\rasterio\mask.py”, line 178, in mask
shape_mask, transform, window = raster_geometry_mask(
^^^^^^^^^^^^^^^^^^^^^
File “…\env\Lib\site-packages\rasterio\mask.py”, line 80, in raster_geometry_mask
window = geometry_window(dataset, shapes, pad_x=pad_x, pad_y=pad_y)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “…\env\Lib\site-packages\rasterio\features.py”, line 451, in geometry_window
all_bounds = [bounds(shape, transform=~dataset.transform) for shape in
shapes]
^^^^^^^^^^^^^^^^^^
File “…\env\Lib\site-packages\affine_init_.py”, line 565, in invert
raise TransformNotInvertibleError(“Cannot invert degenerate transform”)affine.TransformNotInvertibleError: Cannot invert degenerate transform