Açık kaynak araçlarını kullanarak bir Shapefile'a projeksiyon nasıl eklenir?


10

Bir projeksiyon OLMADAN bana bazı şekil dosyaları verildi. Bu yüzden Google harita üzerinde görüntülemek için projeksiyon eklemek gerekir. İhtiyacım olan projeksiyon bilgilerini http://spatialreference.org/ref/epsg/2066 adresinde buldum .

Soru:
Açık kaynaklı bir yöntem kullanarak projeksiyonu nasıl ekleyebilirim (ESRI yazılımına erişiminiz yok)?

Teşekkürler
Chris

Yanıtlar:


16

Kullanım ogr2ogr gelen GDAL :

ogr2ogr -a_srs EPSG:2066 output.shp input.shp

OGR hakkında düzgün olan şey, varolan bir PRJ dosyasını girdi olarak da kullanabilmesidir:

ogr2ogr -a_srs input.prj output.shp input.shp


2
Yukarıdaki yardımcı programı denediğimde aşağıdaki hatayı alıyorum: "Koordinatlar dönüştürülemiyor, kaynak katmanın koordinat sistemi yok. Bir tane ayarlamak için -s_srs kullanın."
ChrisJ

@chris Yanlış kullanım yazdım, bu yüzden bir çıktı projeksiyonu "atamak" için a_srs deneyin
SaultDon

-A_srs'a bir .prj sağlayabileceğinizi bilmiyordum. Teşekkürler!
aendrew

7

.Shp dosyasındaki projeksiyon shapefilename.prj'dir. Temelde, bulduğunuz bilgileri içeren metin dosyasıdır. Bazı şekil dosyalarınıza bir göz atın ve bilgilerin nasıl yazıldığını öğrenin. Daha az tamamlanmışsa, aynı projeksiyonda başka .shp dosyanız varsa, kopyalayın ve adı uygun şekilde değiştirin.


Çevrimiçi bulduğum bilgilerle manuel olarak bir dosya oluşturdum. Ancak yine de düzgün görüntülenmiyor. Bu verilerle projeksiyon dosyası oluşturmak için kullanabileceğiniz bir yardımcı program var mı?
ChrisJ

3
Ayrıca kullanabilirsiniz spatialreference.org bulup bir .PRJ dosyayı indirebilirsiniz nerede ardından SHP dosyasıyla aynı karışmayacak şekilde yeniden adlandırın
Mike T


2

Gönderdiğiniz bağlantıdan .prj dosyasını indirin ve ardından şekil dosyanızla eşleşecek şekilde yeniden adlandırın.


1
ara veri oluşturmaya gerek olmadığı göz önüne alındığında, bu muhtemelen en kolay yöntemdir
SaultDon

0

Spatialreference.org adresinden projeksiyon referansını bir .prj dosyasına yazan küçük bir komut dosyası bulun . Bir dizinde belirtilen tüm dosyalara bir projeksiyon dosyası ekler. Örneğin, E: \. Dizinindeki tüm şekil dosyaları, gömmek istediğiniz projeksiyonun EPSG kodu, projeksiyon dosyası eklemek istediğiniz dosyaların uzantısı ve bunların bulunduğu dizin hakkında endişelenir. Tüm alt dizinleri yinelemeli olarak geçirecektir, bu yüzden dikkatli kullanın.

    import os

    def getWKT_PRJ (epsg_code):
     import urllib.request, urllib.parse, urllib.error

    # Access projection information
     wkt = urllib.request.urlopen("http://spatialreference.org/ref/epsg/{0}/prettywkt/".format(epsg_code))
     decoded = (wkt.read().decode('utf-8')) 

    # Remove spaces between charachters
     remove_spaces = decoded.replace(" ","")        
    # Place all the text on one line
     output = remove_spaces.replace("\n","")
     return output

    def referencer(folder_path, extension):
        for path, subdirs, files in os.walk(folder_path):
            for name in files:
                file_extension = os.path.splitext(name)[-1]
                if(extension in file_extension):
                    file_path = os.path.join(path,name)
                    file_name = os.path.splitext(file_path)[0]
                    prj = file_name + ".prj"
                    projection = open(prj,"w")
                    projection.write(epsg)
                    projection.close()

    epsg = getWKT_PRJ("25831")              
    referencer('E:\Testfolder', '.shp')

-1

Geokettle kullanmayı deneyin http://www.spatialytics.org/ şekil dosyalarını okur ve dönüşümlerine bir SRS ekleme seçeneği vardır. Aksi takdirde srid'i görmek için ogr2ogr gui (yalnızca pencereler) kullanın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.