我通常在Windows中安装gdal并设置路径。
我还从gisinternals网站添加了可移植的Windows msvc编译二进制文件。
从已安装的版本访问gdal_merge.py似乎很好,但是当由嵌入式python访问时,相同的代码无法提供正确的输出。
运行正常,没有错误,但是输出图像无效。
path/to/embedded/python.exe path/to/embedded/gdal/bin/gdal/scripts/gdal_merge.py -seperate -o merged.tif one.bin two.bin three.bin
我已经添加了gdal的所有可能路径,以便python的._pth文件可以看到相关文件。
这是我指定路径的内容
设置gdal和其他库路径
set SDK_ROOT=%~dp0gdal\
set SDK_ROOT=%SDK_ROOT:\\=\%
set GNUPLOT_ROOT=%~dp0gnuplot\
set PYTHON_ROOT=%~dp0python-3.7.3-embed-amd64\
set GSL_ROOT=%~dp0gsl2\
SET "PATH=%SDK_ROOT%bin;%SDK_ROOT%bin\gdal\python\osgeo;%SDK_ROOT%bin\gdal\python\;%SDK_ROOT%bin\proj6\apps;%SDK_ROOT%bin\gdal\apps;%SDK_ROOT%bin\ms\apps;%SDK_ROOT%bin\gdal\csharp;%SDK_ROOT%bin\ms\csharp;%SDK_ROOT%bin\curl;%GNUPLOT_ROOT%bin\;%GSL_ROOT%bin\;%PATH%"
SET "GDAL_DATA=%SDK_ROOT%bin\gdal-data"
SET "GDAL_DRIVER_PATH=%SDK_ROOT%bin\gdal\plugins"
SET "PYTHONPATH=%SDK_ROOT%bin\gdal\python\osgeo;%SDK_ROOT%bin\gdal\python;%SDK_ROOT%bin\ms\python;%PYTHON_ROOT%"
SET "PROJ_LIB=%SDK_ROOT%bin\proj6\SHARE"
SET "LD_LIB_PATH=%SDK_ROOT%gsl2\lib"
python._pth文件 这个文件,我只是用所有可能的路径删除了它
python37.zip
.
..\gdal\
..\gdal\bin\curl\
..\gdal\bin\
..\gdal\bin\gdal\python\
..\gdal\bin\gdal\python\osgeo\
..\gdal\bin\gdal\python\scripts\
..\gdal\bin\ms\python\
..\gdal\apps\
..\gdal\plugins\
..\gdal\plugin-external\
..\gdal\plugin-optional\
..\gdal\plugin-optional\msodbc\
..\gdal\bin\gdal-data\
..\gdal\bin\ms\apps\
..\gdal\bin\python\
..\gdal\bin\plugins\oci\
..\gdal\bin\plugins\mssql2008\
..\gdal\bin\proj\apps\
..\gdal\bin\proj\SHARE\
..\gdal\bin\proj6\apps\
..\gdal\bin\proj6\SHARE\
..\gdallibs\include\
..\gdallibs\lib\
..\bin\
..\gsl2\bin\
..\gsl2\include\
..\gsl2\lib\
..\gnuplot\
..\gnuplot\bin\
..\gnuplot\demo\
..\gnuplot\docs\
..\gnuplot\share\
..\jdk8u212-b04-jre\bin\
..\jdk8u212-b04-jre\bin\server\
..\jdk8u212-b04-jre\lib\
..\
我尝试过的事情: 我从已安装的gdal和便携式gdal二进制文件中交换了gdal_merge.py。 它没有改变任何东西。同样的问题。
问题出在哪里?