GDAL и кириллица в именах файлов Windows: различия между версиями

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Нет описания правки
Строка 10: Строка 10:


=== Утилиты GDAL/OGR не "любят" русские буквы в именах файлов Windows: ===
=== Утилиты GDAL/OGR не "любят" русские буквы в именах файлов Windows: ===
Это все были плюсы, к которым несомненно стоит отнести тот факт, что библиотека и утилиты открыты и бесплатны. Больше того библиотека находится в постоянном развитии. Вот с этого момента начинаются небольшие, но очень "кусачие" минусы. Останавливаться на перманентном изменении поведения отдельных частей библиотеки не имеет смысла, поскольку статья не про это. Есть люди, которые живут с этой библиотекой и ее развитием дружно, и к ним можно всегда постучаться за помощью. Проблемой является то, что часть нетривиальных случаев в поведении библиотеки приходится на пользователей Windows, которые стоят в стороне от тех, кто пишет "кросс-платформенные" библиотеки на Lunix. Из этого факта вырос неприятный сюрприз, что утилиты GDAL/OGR не "любят" русские буквы в именах путей и файлов Windows. Такая особенность возникла не сразу, а где то в процессе перехода от версии 1.6 к версии 1.9. С тех пор попытки передать программам имена с русскими, а скорее всего и символами любых других национальных алфавитов, выходящих за рамки [http://ru.wikipedia.org/wiki/ASCII ACSII], заканчивались как то так:
Это все были плюсы, к которым несомненно стоит отнести тот факт, что библиотека и утилиты открыты и бесплатны. Больше того библиотека находится в постоянном развитии. Вот с этого момента начинаются небольшие, но очень "кусачие" минусы. Останавливаться на перманентном изменении поведения отдельных частей библиотеки не имеет смысла, поскольку статья не про это. Есть люди, которые живут с этой библиотекой и ее развитием дружно, и к ним можно всегда постучаться за помощью. Проблемой является то, что часть нетривиальных случаев в поведении библиотеки приходится на пользователей Windows, которые стоят в стороне от тех, кто пишет "кросс-платформенные" библиотеки на Lunix. Из этого факта вырос неприятный сюрприз, что утилиты GDAL/OGR не "любят" русские буквы в именах путей и файлов Windows. Такая особенность возникла не сразу, а где то в процессе перехода от версии 1.6 к версии 1.9. С тех пор попытки передать программам имена с русскими буквами, а скорее всего и символами любых других национальных алфавитов, выходящих за рамки [http://ru.wikipedia.org/wiki/ASCII ACSII], заканчивались как то так:


<syntaxhighlight lang="python">
<syntaxhighlight lang="bash">
F:\21>gdalinfo результат.tif
F:\21>gdalinfo результат.tif
</syntaxhighlight>
<pre>
ERROR 4: `Ёхчєы№ЄрЄ.tif' does not exist in the file system,
ERROR 4: `Ёхчєы№ЄрЄ.tif' does not exist in the file system,
and is not recognised as a supported dataset name.
and is not recognised as a supported dataset name.


gdalinfo failed - unable to open 'Ёхчєы№ЄрЄ.tif'.
gdalinfo failed - unable to open 'Ёхчєы№ЄрЄ.tif'.
</pre>


<syntaxhighlight lang="bash">
F:\21>chcp 1251
F:\21>chcp 1251
F:\21>gdalinfo результат.tif
</syntaxhighlight>


F:\21>gdalinfo результат.tif
<pre>
ERROR 4: `результат.tif' does not exist in the file system,
ERROR 4: `результат.tif' does not exist in the file system,
and is not recognised as a supported dataset name.
and is not recognised as a supported dataset name.


gdalinfo failed - unable to open 'результат.tif'.
gdalinfo failed - unable to open 'результат.tif'.
</syntaxhighlight>
</pre>
 
Тема обсуждалась на нашем форуме и закончилась [http://gis-lab.info/forum/viewtopic.php?f=30&t=9182&hilit=%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B5+gdal#p54406 диагнозом]. Расширенная версии обсуждения русских букв: [http://gis-lab.info/forum/viewtopic.php?f=30&t=15093&hilit=%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B5+gdal#p100080 GDAL и русские буквы в именах файлов Windows].
 
Вывод:
Установите переменную окружения </b>GDAL_FILENAME_IS_UTF8</b> в значение NO, и при работе в пределах одной кодовой страницы - будет вам счастье:
<pre>
set GDAL_FILENAME_IS_UTF8=NO
</pre>

Версия от 19:55, 18 декабря 2013

GDAL и русские буквы в именах файлов и путей Windows

Вступление:

Утилиты GDAL/OGR краткие сведения:

GDAL/OGR - это кросс-платформенная библиотека для обработки ГИС-информации, и растров, и векторов. Для программистов она представляет серьезный инструмент для создания ГИС-приложений. Богатство форматов, поддерживаемых библиотекой, позволяет использовать с огромным количеством ГИС-данных. Библиотека GDAL/OGR используется в [1] коммерческих, свободных и открытых продуктах для операций над ГИС-файлами. Не упомянутый на странице Software Using GDAL очень достойный (хотя и не очень дешевый ;) ) российский продукт SCANEX IMAGE PROCESSOR®, так же использует библиотеки GDAL/OGR.

Кроме самих библиотек GDAL и OGR в инсталяционном пакете присутствует набор уже созданных утилит GDAL/OGR, запускаемых из командной строки, которые позволяют выполнять многие операции над растровыми и векторными данными. Часть утилит представлена в виде исполнимых (EXE) файлов, а часть в виде скриптов на языке Python.

О GDAL/OGR можно узнать на форуме в разделе Программное обеспечение ‹ Свободные, бесплатные, открытые ГИС ‹ GDAL/OGR. Один из вариантов установки дан в этой статье. Мне известно, что утилиты командной строки так же входят состав ГИС NextGIS QGIS. Для специалиста, умеющего общаться с командной строкой, набор утилит представляет огромные возможности, часто не сопоставимые с многими пакетами "ГИС". Сильной стороной пакета является отсутствие необходимости визуализовать файлы во время работы, что сказывается на быстродействии его операций, а так же позволяет работать с файлами, размеры которых "убивают" многие графические редакторы и ГИС-программы.

Утилиты GDAL/OGR не "любят" русские буквы в именах файлов Windows:

Это все были плюсы, к которым несомненно стоит отнести тот факт, что библиотека и утилиты открыты и бесплатны. Больше того библиотека находится в постоянном развитии. Вот с этого момента начинаются небольшие, но очень "кусачие" минусы. Останавливаться на перманентном изменении поведения отдельных частей библиотеки не имеет смысла, поскольку статья не про это. Есть люди, которые живут с этой библиотекой и ее развитием дружно, и к ним можно всегда постучаться за помощью. Проблемой является то, что часть нетривиальных случаев в поведении библиотеки приходится на пользователей Windows, которые стоят в стороне от тех, кто пишет "кросс-платформенные" библиотеки на Lunix. Из этого факта вырос неприятный сюрприз, что утилиты GDAL/OGR не "любят" русские буквы в именах путей и файлов Windows. Такая особенность возникла не сразу, а где то в процессе перехода от версии 1.6 к версии 1.9. С тех пор попытки передать программам имена с русскими буквами, а скорее всего и символами любых других национальных алфавитов, выходящих за рамки ACSII, заканчивались как то так:

F:\21>gdalinfo результат.tif
ERROR 4: `Ёхчєы№ЄрЄ.tif' does not exist in the file system,
and is not recognised as a supported dataset name.

gdalinfo failed - unable to open 'Ёхчєы№ЄрЄ.tif'.
F:\21>chcp 1251
F:\21>gdalinfo результат.tif
ERROR 4: `результат.tif' does not exist in the file system,
and is not recognised as a supported dataset name.

gdalinfo failed - unable to open 'результат.tif'.

Тема обсуждалась на нашем форуме и закончилась диагнозом. Расширенная версии обсуждения русских букв: GDAL и русские буквы в именах файлов Windows.

Вывод: Установите переменную окружения GDAL_FILENAME_IS_UTF8 в значение NO, и при работе в пределах одной кодовой страницы - будет вам счастье:

set GDAL_FILENAME_IS_UTF8=NO