如何设置GDAL_DATA环境变量以指向包含EPSG csv文件的目录?

时间:2013-01-21 17:43:24

标签: gdal

我想在这个netcdf文件中包装(重新投影)一个变量。

D:\ gdalwarp -t_srs EPSG:4326 NETCDF:"C:\fie.nc":var "C:\Desktop\SM.img"

但是我收到了这个错误:

  

错误4:无法打开EPSG支持文件gcs.csv。尝试将GDAL_DATA环境变量设置为指向包含EPSG csv文件的目录。

     

错误1:翻译源SRS或目标SRS失败:EPSG:4326

我正在使用2011年12月29日发布的GDAL 1.9.0。我将不胜感激任何帮助。

5 个答案:

答案 0 :(得分:27)

您可以在Windows中以图形方式编辑环境变量(例如,thisthis)。

添加名称为GDAL_DATA的System变量和共享GDAL数据的路径值(包含多个文件的文件夹,如coordinate_axis.csvgcs.csvpcs.csv和其他文件)。

要使环境变量生效,您需要运行cmd.exe或注销,或其他方法。

另请参阅:http://trac.osgeo.org/gdal/wiki/FAQInstallationAndBuilding#HowtosetGDAL_DATAvariable

答案 1 :(得分:9)

您也可以使用--config开关:

D:\ gdalwarp --config GDAL_DATA "D:/my/gdal/data" -t_srs EPSG:4326 NETCDF:"path":Soil_Moisture "C:\Desktop\SM.img"

请参阅:http://trac.osgeo.org/gdal/wiki/ConfigOptions

有关配置选项的信息。

答案 2 :(得分:4)

我尝试以编程方式设置GDAL_DATA变量(C#),@ turgay的解决方案对我不起作用。 here我找到了工作方式:

OSGeo.GDAL.Gdal.SetConfigOption("GDAL_DATA", path+@"\gdal\data");

答案 3 :(得分:2)

您还可以使用编程方式(使用C#API)。 示例代码:

string path = @"C:\abc\";
_SetValueNewVariable("GDAL_DATA", path + "\\data");
_SetValueNewVariable("GEOTIFF_CSV", path + "\\data");
_SetValueNewVariable("GDAL_DRIVER_PATH", path + "\\gdalplugins");

private static void _SetValueNewVariable(string sVar, string sValue)
{
    if (System.Environment.GetEnvironmentVariable(sVar) == null)
       System.Environment.SetEnvironmentVariable(sVar, sValue);
}

答案 4 :(得分:0)

在命令提示符下,我曾经通过指向要使用的where(和gdal-data)来设置GDAL_DATA路径:

  

设置GDAL_DATA = C:\ Program Files \ PostgreSQL \ 9.3 \ gdal-data

我是从http://clhenrick.github.io/thesis-blog/procrastination/portfolio-work/2014/09/27/procrastinating/学到的,即使我已经在我的环境变量中设置了它,我仍然需要执行上述操作。我的问题似乎是安装问题,但我不想重新安装任何东西......但是。

作为临时解决方案,虽然我没有时间进行更长期的解决方案,但我删除了环境变量中的现有GDAL_DATA路径,关闭计算机,打开计算机,创建新计算机,关闭计算机,再打开它。修复!

由于系统的离奇行为,完全关闭不会重启。