How to set the GDAL_DATA environment variable to point to the directory containing EPSG csv files?

空扰寡人 提交于 2019-12-20 10:24:14

问题


I want to wrap(re-project) one variable in this netcdf file.

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

But I get this error:

ERROR 4: Unable to open EPSG support file gcs.csv. Try setting the GDAL_DATA environment variable to point to the directory containing EPSG csv files.

ERROR 1: Translating source or target SRS failed: EPSG:4326

I am using GDAL 1.9.0, released 2011/12/29. I will be grateful for any help.


回答1:


You can edit the environment variables graphically in Windows (e.g., this, or this).

Add a System variable with name GDAL_DATA and value of the path to the shared GDAL data (a folder with a several files, like coordinate_axis.csv, gcs.csv, pcs.csv, and other files).

To make the environment variable effective, you need to run cmd.exe, or log-out, or other method.

See also: http://trac.osgeo.org/gdal/wiki/FAQInstallationAndBuilding#HowtosetGDAL_DATAvariable


Anaconda / Miniconda users

GDAL library and command-line tools are available via (e.g.) conda install gdal

The GDAL_DATA variable is properly set when the environment is activated. This is done for you if you start an Anaconda Prompt, otherwise you can activate the environment as documented.




回答2:


You can also use the --config switch:

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

See: http://trac.osgeo.org/gdal/wiki/ConfigOptions

for information on config options.




回答3:


I tried to set the GDAL_DATA variable programmatically(C#) and @turgay's solution didn't work for me. here I found the working way:

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



回答4:


You can also use for making programmatically(with C# API). Sample code:

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);
}



回答5:


On the command prompt, I used to set the GDAL_DATA path by pointing to where (and which gdal-data) to use:

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

I learned it from http://clhenrick.github.io/thesis-blog/procrastination/portfolio-work/2014/09/27/procrastinating/ I always needed to do the above even though I already set it up in my environment variables. My problem seemed to be an installation issue but I didn't want to reinstall anything...yet.

As a temporary solution, while I did not have time for a more permanent one, I deleted the existing GDAL_DATA path in my environment variables, shut down the computer, turned it on, created a new one, shut down the computer, turned it on again. FIXED!

Complete shut-down not restart due to the quirky behaviour of my system.



来源:https://stackoverflow.com/questions/14444310/how-to-set-the-gdal-data-environment-variable-to-point-to-the-directory-containi

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!