- ogr2ogr и кирилица в именах файлов
- GDAL и русские буквы в именах файлов Windows
- как правильно открыть файл в GDAL на python'е (Windows)?

GDAL и русские буквы в именах файлов Windows
=========================================
Статья опубликована.
Геоинформационные системы (ГИС) и Дистанционное зондирование Земли
постараюсь в ближайшее время. оставить только результат? или что-то расширить, потому как появился вопрос про то как именно искажается строка консоли.Максим Дубинин писал(а):Борис, а можно убрать все "костыли" и лирику из статьи, приходится продираться сквозь всё это, чтобы суть уловить.
2 и 3 работают только в комплексе. Одно без другого не работает. Нельзя просто уйти в UTF-8 и использовать GeneralCmdLineProcessor.Sergey Astakhov писал(а):Суть можно свести к 3 строчкам:
2) Используйте GDAL_FILENAME_IS_UTF8=YES при запуске из python-а (при этом должны работать все символы Unicode).
3) Не используйте gdal.GeneralCmdLineProcessor()
Можно наверное вынести это в начало статьи, чтобы кому не интересно, дальше можно было не читать.
Не понятно как именно портит строки gdal.GeneralCmdLineProcessor() - вроде судя по исходникам символы портится не должны, может это от версии python-а зависит?
Хорошо я поправлю, но для тех, кто видел настоящий Unix, Windows на фоне нынешних клонов Linux, то же может называться "Unix-подобные ОС".Александр Мурый писал(а):1) Борис, всё-таки Linux, а не "Lunix";лично я бы вообще написал "Unix-подобные ОС";
2) отсылать к форуму по "диагнозам" лично мне кажется неправильным;
3) dal_merge.bat --> gdal_merge.bat
dal_mergeF.bat --> gdal_mergeF.bat
В случае "коллективного разума" ссылка на форум, видимо, нужна.Boris писал(а): Не понял только по отсылку к форуму, не ссылаться вообще, но я же не сам до всего этого дошел. Куда тогда ссылаться на авторов предложений и предположений?
Сам код, который делает то ради чего его вызывают, вот тут:Boris писал(а):Я был бы признателен за ссылку на код GeneralCmdLineProcessor. Я так сходу не нашел. То есть нашел но там почему то были две функции, которые ссылались друг на друга (?) и действительно в том как описано код портить не могли.
В комментариях написано что он не используется.Boris писал(а):Но в тех, что я видел в ф-ии имелся 2-ой параметр, не ясно для чего.
make-bat-for-py.bat
Код: Выделить всё
@echo on
echo.
echo. Generating .bat files for all .py files in %OSGEO4W_ROOT%\bin
echo.
pushd "%OSGEO4W_ROOT%\bin"
for %%g in (*.py) do (
echo @setlocal 1> %%~ng.bat
echo @echo off 1>> %%~ng.bat
echo @chcp 65001 1>> %%~ng.bat
echo Set GDAL_FILENAME_IS_UTF8=YES 1>> %%~ng.bat
echo set ARGV=%%* 1>> %%~ng.bat
echo if "%%1"=="" goto iExit 1>> %%~ng.bat
echo set iTmp=%%tmp%%\%%RANDOM%%_%%~n0_%%RANDOM%%.tmp 1>> %%~ng.bat
echo @rem echo %%iTmp%% 1>> %%~ng.bat
echo @echo %%ARGV%%^>"%%iTmp%%" 1>> %%~ng.bat
echo @python "%%OSGEO4W_ROOT%%\bin\%%g" --optfile "%%iTmp%%" 1>> %%~ng.bat
echo @endlocal 1>> %%~ng.bat
echo exist /b
echo :iExit 1>> %%~ng.bat
echo @python "%%OSGEO4W_ROOT%%\bin\%%g" %%* >> %%~ng.bat
echo @python "%%OSGEO4W_ROOT%%\bin\%%g" --optfile "%%iTmp%%"
echo @endlocal 1>> %%~ng.bat
echo exist /b
)
popd
Для стандартных программа - скриптов на python, в комплекте OSGeo4W, используются оболочки в виде BAT-файлов с аналогичным именем. Стандартно они создаются (перезаписываются) командным файлом "make-bat-for-py.bat", который запускается в конце инсталляции. Стандартный "make-bat-for-py.bat" состоит только из одной строки, вызывающей программу python.exe для скрипта с аналогичным именем.
Поскольку при таком вызове невозможно использование файлов с кириллическими символами, в файл оболочку необходимо добавить строки, обеспечивающие дополнительные настройки, призванные обеспечить корректную передачу имен файлов. Для это предлагается замена стандартного"make-bat-for-py.bat" на файл, приводимый ниже, с последующим запуском этого файла, что вызовет массовую замену BAT-файлов, оболочек для скриптов python, в каталоге "%OSGEO4W_ROOT%\bin":
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя
© GIS-Lab и авторы, 2002-2017. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов (подробнее).