Ejemplo n.º 1
0
    def coordinate_system(self, domain: GeoPolygon) -> str:
        raster_files = self.directory.glob("*.tif")
        for filepath in raster_files:
            geo_polygon = GeoPolygon.from_raster_file(filepath=filepath)
            if domain.intersects(geo_polygon):
                return geo_polygon.crs.to_proj4()

        raise RuntimeError(
            "Defining polygon does not intersect with dem raster data.")
Ejemplo n.º 2
0
    def get_intersections(self, *,
                          target_polygon: GeoPolygon) -> List[Rasterdata]:

        parts = []

        raster_files = self.directory.glob("*.tif")
        logger = getLogger()
        for filepath in raster_files:
            geo_polygon = GeoPolygon.from_raster_file(filepath=filepath)

            if target_polygon.intersects(geo_polygon):
                logger.info(f"Using file: {filepath}")
                polygon = target_polygon.transform(
                    target_crs=geo_polygon.crs).polygon
                part = read_raster_file(filepath=filepath, polygon=polygon)
                parts.append(part)

                target_polygon = target_polygon.difference(geo_polygon)

                if target_polygon.polygon.area < 1e-10:
                    break
        return parts