Перепроецирование с помощью GDAL
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 21 мар 2018, 17:45
- Репутация: 0
- Откуда: Беларусь
Перепроецирование с помощью GDAL
Добрый день, уважаемые господа. Очень нужна ваша помощь!
Объясните пожалуйста, если не сложно, как правильно перепроецировать растровую карту в 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.
Объясните, пожалуйста, что это значит? И как правильно выполнить эту задачу. Извините заранее, если что-то не так описал. Я сам не из этой сферы, но задачу нужно решить срочно.
Спасибо за помощь!
Объясните пожалуйста, если не сложно, как правильно перепроецировать растровую карту в 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.
Объясните, пожалуйста, что это значит? И как правильно выполнить эту задачу. Извините заранее, если что-то не так описал. Я сам не из этой сферы, но задачу нужно решить срочно.
Спасибо за помощь!
-
- Активный участник
- Сообщения: 218
- Зарегистрирован: 21 дек 2012, 01:57
- Репутация: 52
- Откуда: Питер
Re: Перепроецирование с помощью GDAL
Судя по ошибке у вас исходный tiff не привязан. gdalinfo что показывает?
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 21 мар 2018, 17:45
- Репутация: 0
- Откуда: Беларусь
Re: Перепроецирование с помощью GDAL
Да, очень возможно. Как его правильно привязать в таком случае?
Вот что пишет 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
Вот что пишет 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
-
- Гуру
- Сообщения: 5286
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 21 мар 2018, 17:45
- Репутация: 0
- Откуда: Беларусь
Re: Перепроецирование с помощью GDAL
Есть вариант попроще? У меня просто карта Земли в EPSG:3395. Может быть ее можно привязать через gdal какой нибудь командой?
-
- Гуру
- Сообщения: 5286
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Перепроецирование с помощью GDAL
можно просто ручками написать файл привязки
- Игорь Белов
- Гуру
- Сообщения: 2229
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1501
- Откуда: Казань
Re: Перепроецирование с помощью GDAL
Создайте файл привязки map.tfw:
Код: Выделить всё
2445.98490512564
0
0
-2445.98490512564
-20036285.350336737
-20036285.350336737
The purpose of computing is insight, not numbers
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 21 мар 2018, 17:45
- Репутация: 0
- Откуда: Беларусь
Re: Перепроецирование с помощью GDAL
Игорь, если не сложно, в двух словах расскажите как его создавать. Я, честно говоря, не знаком с такими файлами.
-
- Гуру
- Сообщения: 5286
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Перепроецирование с помощью GDAL
1. Запустить Блокнот
2. Вставить в него текст:
3. Сохранить как map.tfw в папке с map.tif
2. Вставить в него текст:
Код: Выделить всё
2445.98490512564
0
0
-2445.98490512564
-20036285.350336737
-20036285.350336737
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 21 мар 2018, 17:45
- Репутация: 0
- Откуда: Беларусь
Re: Перепроецирование с помощью GDAL
Готово. Его нужно как-то указывать в GDAL как файл привязки?
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 21 мар 2018, 17:45
- Репутация: 0
- Откуда: Беларусь
Re: Перепроецирование с помощью GDAL
Пока что ту же самую ошибку выдает.
-
- Гуру
- Сообщения: 5286
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Перепроецирование с помощью GDAL
а если так
Код: Выделить всё
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
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 21 мар 2018, 17:45
- Репутация: 0
- Откуда: Беларусь
Re: Перепроецирование с помощью GDAL
Так сработало, но преобразование не правильное.
Похоже больше на сжатую по вертикали картинку. На сколько я понимаю, в нужной мне проекции, сжатие изображения происходит от экватора к полюсам по какой-то зависимости. А у меня вот такой результат получился:
Похоже больше на сжатую по вертикали картинку. На сколько я понимаю, в нужной мне проекции, сжатие изображения происходит от экватора к полюсам по какой-то зависимости. А у меня вот такой результат получился:
- Вложения
-
- карта_resize.jpg (3.43 МБ) 7447 просмотров
-
- Гуру
- Сообщения: 5286
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Перепроецирование с помощью GDAL
правильный результат
попробуй так
поэксперементируй - GEOTRANSFORM, GCP_POLYNOMIAL, GCP_TPS, GEOLOC_ARRAY, RPC
попробуй так
Код: Выделить всё
SRC_METHOD=GEOTRANSFORM -to DST_METHOD=GEOTRANSFORM
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 21 мар 2018, 17:45
- Репутация: 0
- Откуда: Беларусь
Re: Перепроецирование с помощью GDAL
Попробовал все варианты.
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 дает одинаковые результаты не зависимо от значения. Такие, как я и получил постом ранее.
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 дает одинаковые результаты не зависимо от значения. Такие, как я и получил постом ранее.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей