|
18 | 18 | from arho_feature_template.utils.misc_utils import get_active_plan_id, use_wait_cursor
|
19 | 19 |
|
20 | 20 |
|
21 |
| -class CreateGeoTiff: |
| 21 | +class GeoTiffCreator: |
22 | 22 | def __init__(self, desired_pixel_size=0.5):
|
23 | 23 | """Initialize the CreateGeoTiff class and fetch the required data."""
|
24 | 24 | self.desired_pixel_size = desired_pixel_size
|
@@ -71,6 +71,12 @@ def create_geotiff(self, geotiff_path):
|
71 | 71 | ]
|
72 | 72 | )
|
73 | 73 | settings.setBackgroundColor(QColor(255, 255, 255))
|
| 74 | + width = int(buffered_bbox.width() / self.desired_pixel_size) * self.desired_pixel_size |
| 75 | + height = int(buffered_bbox.height() / self.desired_pixel_size) * self.desired_pixel_size |
| 76 | + buffered_bbox.setXMinimum(int(buffered_bbox.xMinimum())) |
| 77 | + buffered_bbox.setYMinimum(int(buffered_bbox.yMinimum())) |
| 78 | + buffered_bbox.setXMaximum(buffered_bbox.xMinimum() + width) |
| 79 | + buffered_bbox.setYMaximum(buffered_bbox.yMinimum() + height) |
74 | 80 | settings.setExtent(buffered_bbox)
|
75 | 81 |
|
76 | 82 | # Calculate image size
|
@@ -107,24 +113,16 @@ def finished():
|
107 | 113 | render.finished.connect(finished)
|
108 | 114 | render.start()
|
109 | 115 |
|
110 |
| - def _create_geotiff_from_png(self, image_path, geotiff_path, pixels_x, pixels_y, buffered_bbox): |
| 116 | + def _create_geotiff_from_png(self, image_path, geotiff_path, buffered_bbox): |
111 | 117 | """Convert the rendered PNG to GeoTIFF."""
|
112 |
| - transform = [ |
113 |
| - buffered_bbox.xMinimum(), |
114 |
| - self.desired_pixel_size, |
115 |
| - 0, |
116 |
| - buffered_bbox.yMaximum(), |
117 |
| - 0, |
118 |
| - -self.desired_pixel_size, |
119 |
| - ] |
120 | 118 |
|
121 | 119 | ds = gdal.Open(image_path)
|
122 | 120 |
|
123 | 121 | output_bounds = [
|
124 |
| - transform[0], |
125 |
| - transform[3], |
126 |
| - transform[0] + pixels_x * transform[1], |
127 |
| - transform[3] + pixels_y * transform[5], |
| 122 | + buffered_bbox.xMinimum(), |
| 123 | + buffered_bbox.yMaximum(), |
| 124 | + buffered_bbox.xMaximum(), |
| 125 | + buffered_bbox.yMinimum(), |
128 | 126 | ]
|
129 | 127 |
|
130 | 128 | # Convert the PNG to GeoTIFF
|
|
0 commit comments