У меня есть файл .tif, который я попытался (я не получил код ошибки... но я не уверен, что это сработало) выполнить географическую привязку с помощью функции геотрансформации gdal, используя следующий код:
raster = gdal.Open("drive/My Drive/raster.tif")
geotransform = raster.GetGeoTransform()
gt = list(geotransform)
gt[0] = -71.9002
gt[3] = 41.8738
gt[2] = 0
gt[4] = 0
gt[1] = 50
gt[5] =-50
Затем я пытаюсь построить это:
fig, ax = plt.subplots(figsize = (10,10))
rasterio.plot.show(raster, ax=ax)
plt.show()
но получите следующее:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-70-d9daf3e89a18> in <module>()
1 minx, miny, maxx, maxy = ri.geometry.total_bounds
2 fig, ax = plt.subplots(figsize = (10,10))
----> 3 rasterio.plot.show(raster, ax=ax)
4 plt.show()
5 frames
/usr/local/lib/python3.7/dist-packages/matplotlib/image.py in set_data(self, A)
692 not np.can_cast(self._A.dtype, float, "same_kind")):
693 raise TypeError("Image data of dtype {} cannot be converted to "
--> 694 "float".format(self._A.dtype))
695
696 if not (self._A.ndim == 2
TypeError: Image data of dtype object cannot be converted to float
Может ли кто-нибудь помочь мне понять, правильно ли я выполнил геотрансформацию и как ее построить?
Исходный файл представляет собой файл .e00 под названием «Батиметрия (глубина в метрах)» (доступенздесь), который мне пришлось преобразовать в .tif с помощью arcmap.
Привет! Большое спасибо за публикацию ответа! У меня только один вопрос.... диапазон значения растра должен быть от -2 до 65 (или что-то в этом роде) почему цветная полоса начинается с 0? Я смог построить другой растр (те же данные, но большей протяженности из другого источника), и при импорте и чтении его с использованием растра масштаб менялся от -3 до 216 в фактических данных до 0-150 на графике...
@nalfahel, ты прав, у него должно быть минимум -2. Не уверен, почему мое изображение этого не показывало, сначала я просто обрезал его, добавив
vmin=0
в вызовimshow()
, прежде чем правильно замаскировать значение nodata. Возможно, я не сохранил свою последнюю версию. Я обновил изображение в посте выше.