Как проецировать файл TIF в координаты широты / долготы? - PullRequest
0 голосов
/ 11 февраля 2019

Этот вопрос, без сомнения, задавался ранее, но я просматриваю сейчас часами, и никто не поднял ошибку, которую я получаю (и если она приблизилась, любые потенциальные решения либо не работают, либо слишком сложны длямне вникать).

Простой вопрос: я использую данные LANDSAT8 и хочу перепроектировать их в другую систему координат.Какой самый простой способ сделать это?

Метод, который я пробовал до сих пор:

from rasterio import warp
import xarray as xr

da = rasterio.open('path/to/.tif')
ny, nx = len(da['y']), len(da['x'])
x, y = np.meshgrid(da['x'], da['y'])

warp.transform(da.crs, {'init': 'epsg:4326'}, x.flatten(), y.flatten())

Я получаю обратно:

File "<ipython-input-100-987d9fe0ea5a>", line 1, in <module>
    warp.transform(da.crs, {'init': 'epsg:4326'}, x.flatten(), y.flatten())

  File "C:\Users\ton99817\AppData\Local\Continuum\anaconda2\envs\sat_data\lib\site-packages\rasterio\warp.py", line 52, in transform
    return _transform(src_crs, dst_crs, xs, ys, zs)

  File "rasterio/_base.pyx", line 850, in rasterio._base._transform (rasterio/_base.c:18379)

  File "rasterio/_base.pyx", line 937, in rasterio._base._osr_from_crs (rasterio/_base.c:20157)

CRSError: Invalid CRS

Понятия не имею, чтопошло не так.Я проверил, что переменная окружения 'GDAL_DATA' указывает на место, где у меня есть соответствующие файлы .csv (то есть, у него есть файл 'gcs.csv'), и я делаю это, устанавливая в начале моего скрипта,

import os
os.environ['GDAL_DATA'] = \
    'C:/Users/ton99817/AppData/Local/Continuum/anaconda2/envs/sat_data/Library/share/'

, потому что я использую conda, и я почти уверен, что если я этого не сделаю, переменная окружения просто не установлена.

Итак, в общемЭто смутило меня без конца, и я потратил слишком много часов на это.Если у кого-то есть опыт решения этой проблемы или какие-либо предложения, я буду рад их реализовать и, наконец, справиться с этой проблемой.

...