Перепроецирование с помощью GDAL

Не знаете, где задать вопрос? Задавайте здесь.
Gerhald
Интересующийся
Сообщения: 17
Зарегистрирован: 21 мар 2018, 17:45
Репутация: 0
Откуда: Беларусь

Перепроецирование с помощью GDAL

Сообщение Gerhald » 21 мар 2018, 17:55

Добрый день, уважаемые господа. Очень нужна ваша помощь!
Объясните пожалуйста, если не сложно, как правильно перепроецировать растровую карту в GDAL.
Исходные данные:
Имеется карта Земли в системе координат EPSG:3395 (квадратная) в формате .jpeg.
Мне нужно конвертировать ее в карту EPSG:4326.
Пишу следующую строку в GDAL:

C:\test>gdalwarp -s_srs EPSG:3395 -t_srs EPSG:4326 -ts 16384 8192 -r lanczos -wo
SOURCE_EXTRA=1000 -co COMPRESS=LZW map.tif map_4326.tif

Выдает вот такую запись:

ERROR 1: The transformation is already "north up" or a transformation between pi
xel/line and georeferenced coordinates cannot be computed for map.tif. There is
no affine transformation and no GCPs. Specify transformation option SRC_METHOD=N
O_GEOTRANSFORM to bypass this check.

Объясните, пожалуйста, что это значит? И как правильно выполнить эту задачу. Извините заранее, если что-то не так описал. Я сам не из этой сферы, но задачу нужно решить срочно.
Спасибо за помощь!

Sergey Astakhov
Активный участник
Сообщения: 218
Зарегистрирован: 21 дек 2012, 01:57
Репутация: 52
Откуда: Питер

Re: Перепроецирование с помощью GDAL

Сообщение Sergey Astakhov » 21 мар 2018, 18:00

Судя по ошибке у вас исходный tiff не привязан. gdalinfo что показывает?

Gerhald
Интересующийся
Сообщения: 17
Зарегистрирован: 21 мар 2018, 17:45
Репутация: 0
Откуда: Беларусь

Re: Перепроецирование с помощью GDAL

Сообщение Gerhald » 21 мар 2018, 18:54

Да, очень возможно. Как его правильно привязать в таком случае?
Вот что пишет gdalinfo:

c:\test>gdalinfo map.tif
Driver: GTiff/GeoTIFF
Files: map.tif
Size is 16384, 16384
Coordinate System is:
PROJCS["WGS 84 / World Mercator",
GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.0174532925199433,
AUTHORITY["EPSG","9122"]],
AUTHORITY["EPSG","4326"]],
PROJECTION["Mercator_1SP"],
PARAMETER["central_meridian",0],
PARAMETER["scale_factor",1],
PARAMETER["false_easting",0],
PARAMETER["false_northing",0],
UNIT["metre",1,
AUTHORITY["EPSG","9001"]],
AXIS["Easting",EAST],
AXIS["Northing",NORTH],
AUTHORITY["EPSG","3395"]]
Metadata:
AREA_OR_POINT=Area
TIFFTAG_DATETIME=2018:03:20 18:15:18
TIFFTAG_RESOLUTIONUNIT=2 (pixels/inch)
TIFFTAG_SOFTWARE=Adobe Photoshop CC 2014 (Windows)
TIFFTAG_XRESOLUTION=72
TIFFTAG_YRESOLUTION=72
Image Structure Metadata:
INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left ( 0.0, 0.0)
Lower Left ( 0.0,16384.0)
Upper Right (16384.0, 0.0)
Lower Right (16384.0,16384.0)
Center ( 8192.0, 8192.0)
Band 1 Block=16384x1 Type=Byte, ColorInterp=Red
Band 2 Block=16384x1 Type=Byte, ColorInterp=Green
Band 3 Block=16384x1 Type=Byte, ColorInterp=Blue

trir
Гуру
Сообщения: 5286
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Перепроецирование с помощью GDAL

Сообщение trir » 21 мар 2018, 19:23


Gerhald
Интересующийся
Сообщения: 17
Зарегистрирован: 21 мар 2018, 17:45
Репутация: 0
Откуда: Беларусь

Re: Перепроецирование с помощью GDAL

Сообщение Gerhald » 21 мар 2018, 19:55

Есть вариант попроще? У меня просто карта Земли в EPSG:3395. Может быть ее можно привязать через gdal какой нибудь командой?

trir
Гуру
Сообщения: 5286
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Перепроецирование с помощью GDAL

Сообщение trir » 21 мар 2018, 20:26

можно просто ручками написать файл привязки

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2229
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1501
Откуда: Казань

Re: Перепроецирование с помощью GDAL

Сообщение Игорь Белов » 21 мар 2018, 21:10

Создайте файл привязки map.tfw:

Код: Выделить всё

2445.98490512564
0
0
-2445.98490512564
-20036285.350336737
-20036285.350336737
The purpose of computing is insight, not numbers

Gerhald
Интересующийся
Сообщения: 17
Зарегистрирован: 21 мар 2018, 17:45
Репутация: 0
Откуда: Беларусь

Re: Перепроецирование с помощью GDAL

Сообщение Gerhald » 21 мар 2018, 21:33

Игорь, если не сложно, в двух словах расскажите как его создавать. Я, честно говоря, не знаком с такими файлами.

trir
Гуру
Сообщения: 5286
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Перепроецирование с помощью GDAL

Сообщение trir » 21 мар 2018, 21:37

1. Запустить Блокнот
2. Вставить в него текст:

Код: Выделить всё

2445.98490512564
0
0
-2445.98490512564
-20036285.350336737
-20036285.350336737
3. Сохранить как map.tfw в папке с map.tif

Gerhald
Интересующийся
Сообщения: 17
Зарегистрирован: 21 мар 2018, 17:45
Репутация: 0
Откуда: Беларусь

Re: Перепроецирование с помощью GDAL

Сообщение Gerhald » 21 мар 2018, 21:43

Готово. Его нужно как-то указывать в GDAL как файл привязки?

Gerhald
Интересующийся
Сообщения: 17
Зарегистрирован: 21 мар 2018, 17:45
Репутация: 0
Откуда: Беларусь

Re: Перепроецирование с помощью GDAL

Сообщение Gerhald » 21 мар 2018, 21:54

Пока что ту же самую ошибку выдает.

trir
Гуру
Сообщения: 5286
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Перепроецирование с помощью GDAL

Сообщение trir » 21 мар 2018, 22:19

а если так

Код: Выделить всё

 C:\test>gdalwarp -to SRC_METHOD=NO_GEOTRANSFORM -to DST_METHOD=GEOTRANSFORM -s_srs EPSG:3395 -t_srs EPSG:4326 -ts 16384 8192 -r lanczos -wo SOURCE_EXTRA=1000 -co COMPRESS=LZW map.tif map_4326.tif

Gerhald
Интересующийся
Сообщения: 17
Зарегистрирован: 21 мар 2018, 17:45
Репутация: 0
Откуда: Беларусь

Re: Перепроецирование с помощью GDAL

Сообщение Gerhald » 22 мар 2018, 07:31

Так сработало, но преобразование не правильное.
Похоже больше на сжатую по вертикали картинку. На сколько я понимаю, в нужной мне проекции, сжатие изображения происходит от экватора к полюсам по какой-то зависимости. А у меня вот такой результат получился:
Вложения
карта_resize.jpg
карта_resize.jpg (3.43 МБ) 7430 просмотров

trir
Гуру
Сообщения: 5286
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Перепроецирование с помощью GDAL

Сообщение trir » 22 мар 2018, 07:43

правильный результат
попробуй так

Код: Выделить всё

SRC_METHOD=GEOTRANSFORM -to DST_METHOD=GEOTRANSFORM
поэксперементируй - GEOTRANSFORM, GCP_POLYNOMIAL, GCP_TPS, GEOLOC_ARRAY, RPC

Gerhald
Интересующийся
Сообщения: 17
Зарегистрирован: 21 мар 2018, 17:45
Репутация: 0
Откуда: Беларусь

Re: Перепроецирование с помощью GDAL

Сообщение Gerhald » 22 мар 2018, 08:11

Попробовал все варианты.
1) SRS_METHOD работает только с NO_GEOTRANSFORM. Во всех остальных случаях такая же ошибка:

ERROR 1: Unable to compute a GEOTRANSFORM based transformation between pixel/lin
e and georeferenced coordinates for map.tif.

ERROR 1: Unable to compute a GCP_POLYNOMIAL based transformation between pixel/l
ine and georeferenced coordinates for map.tif.

ERROR 1: Unable to compute a GCP_TPS based transformation between pixel/line and
georeferenced coordinates for map.tif.
и т.д.

2) DST_METHOD дает одинаковые результаты не зависимо от значения. Такие, как я и получил постом ранее.

Ответить

Вернуться в «Я новичок!»

Кто сейчас на конференции

Сейчас этот форум просматривают: ginpetr и 9 гостей