Source code for jord.gdal_utilities.cloning
from typing import Union
from .importing import GDAL, OGR
__all__ = ["clone_data_to_memory", "clone_raster_to_memory", "clone_vector_to_memory"]
[docs]def clone_data_to_memory(
ds: Union[GDAL.Dataset, OGR.DataSource], name: str = ""
) -> Union[GDAL.Dataset, OGR.DataSource]:
"""
:param ds:
:param name:
:return:
"""
if isinstance(ds, GDAL.Dataset):
return clone_raster_to_memory(ds, name)
elif isinstance(ds, OGR.DataSource):
return clone_vector_to_memory(ds, name)
else:
raise TypeError("Data source must be of GDAL dataset or OGR datasource")
[docs]def clone_vector_to_memory(vector_ds: OGR.DataSource, name: str = "") -> OGR.DataSource:
"""
:param vector_ds:
:param name:
:return:
"""
return OGR.GetDriverByName("Memory").CopyDataSource(vector_ds, name)
[docs]def clone_raster_to_memory(raster_ds: GDAL.Dataset, name: str = "") -> GDAL.Dataset:
"""
:param raster_ds:
:param name:
:return:
"""
return GDAL.GetDriverByName("MEM").CopyDataSource(raster_ds, name)