Как я могу получить детали Proj4 из файла .prj файла формы? - PullRequest
4 голосов
/ 30 июня 2010

Я использую сервисы mapdotnet для нашего gis-приложения для загрузки шейп-файлов, и этот сервис mapdotnet запрашивает подробности proj4.Я получаю их с пространства-ссылки.org, но для этой проекции детали proj4 пусто .Как получить данные proj4 из файла .prj или из шейп-файла?

Ниже приведен файл .prj:

PROJCS["NAD_1983_HARN_WISCRS_EauClaire_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",394000.0],PARAMETER["False_Northing",300812.797],PARAMETER["Central_Meridian",-91.28888888888889],PARAMETER["Standard_Parallel_1",45.87228112638889],PARAMETER["Scale_Factor",1.000035079],PARAMETER["Latitude_Of_Origin",45.87228112638889],UNIT["Foot_US",0.3048006096012192]]

Ответы [ 4 ]

6 голосов
/ 06 октября 2011

Вы также можете использовать этот скрипт Python (который можно найти в Интернете)

#!/usr/bin/env python

import osr
import sys

def main(prj_file):
    prj_text = open(prj_file, 'r').read()
    srs = osr.SpatialReference()
    if srs.ImportFromWkt(prj_text):
        raise ValueError("Error importing PRJ information from: %s" % prj_file)
    print srs.ExportToProj4()
    #print srs.ExportToWkt()

if __name__=="__main__":
    main(sys.argv[1])
2 голосов
/ 09 января 2012

Другое решение, использующее скрипт Perl (требуется Geo :: GDAL):

#!/usr/bin/perl -w
use strict;
use Geo::OSR;
my $srs = Geo::OSR::SpatialReference->new;
my $prj_text = do { open my $fh, shift or die $!; local $/; <$fh> };
$srs->ImportFromWkt($prj_text);
print $srs->ExportToProj4, "\n";
2 голосов
/ 14 февраля 2011

Альтернатива с использованием и библиотеки rgdal:

library(rgdal)
# read the .shp file - layer is the same name but without the .shp
mymap <- readOGR("CA_tract_2000.shp", layer="CA_tract_2000") 
# proj4 info is located in the layer's proj4string slot
mymap@proj4string
0 голосов
/ 19 ноября 2010

Должна быть возможность отработать его из отдельных компонентов. Proj.4 позволяет все указывать. Вам понадобится документация ESRI для их файлов PRJ. Это будет включать их определения (например, в чем разница между NAD83_HARN и обычным NAD83? Они будут одинаковыми, но я не знаю)

другой подход может заключаться в просмотре библиотеки и утилит GDAL / OGR. Они способны читать большинство файлов PRJ.

...