2010-06-10 17 views
8

GeoDjango'da şekil dosyalarıyla çalışıyorum. Şu anda bir şekil dosyasına yüklenen ve bir veritabanına kaydeden bir kod için bir test yazmaya çalışıyorum. Şekil dosyasının şu anda 64,118 özellik özelliği vardır. Bunu bir avuç için azaltmak istiyorum, bu yüzden test hızlı bir şekilde yükleyebilir ve her şeyin doğru olduğunu onaylayabilir.Bir ESRI Shape SHP dosyasının bir alt grubunu yeni bir dosyaya bölme veya kaydetme?

şekil dosyaları bir metin biçiminde değil, ben özellikleri bir avuç koparmak ve yeni bir dosyaya kaydetmek için kullanabileceğiniz ücretsiz bir uygulama veya kütüphane var mı?

Bir lisansa veya ESRI ürün grubunun herhangi birine erişimim olmadığı belirtilmelidir.

+0

Belki de bu tür sorular http://gis.stackexchange.com/ adresinde de uygun olurdu? –

+0

Bu işlem bir dosya coğrafi veritabanındaki shp dosyalarıyla çalışabilir mi? Benim yön ve eğim dosyalarım 16 milyondan fazla kayıt var. en iyi, – GeorgeC

cevap

12

Bir kayıt alt kümesini bir şekil dosyasından dışa aktarmak için birkaç seçeneğiniz vardır.

  • Herhangi bir Open Source masaüstü CBS bunu gerçekleştirebilecek. Daha popüler olanlardan bazıları Quantum GIS, gvSIG veya openJUMP. Tam adımlar her birinde değişecektir, ancak temel olarak şekil dosyasını yüklemeniz, düzenlemeye başlamak, istediğiniz kayıtları seçmek ve bunları yeni bir biçim dosyasına aktarmak zorundasınız.

  • GDAL paketinin bir parçası olan ogr2ogr aracı, farklı coğrafi vektör biçimleri (veya aynı formatta) arasında geçiş yapmanıza olanak tanır ve orijinal veri kümesini filtrelemek için SQL benzeri bir ifade belirtebilirsiniz.

    ogr2ogr -f "ESRI Shape Dosyasının" -burada "id < 10" new_shapefile.shp huge_shapefile.shp

  • Eğer PostGIS kullanıyorsanız ve önceki uygulamalardan herhangi birini yüklemek istemiyorsanız, kullanabilirsiniz PostGIS tablonuzun bir alt kümesini bir şekil dosyasına vermek için pgsql2shp aracını kullanın. pgsql2shp -f "/ path/to/şekil dosyası" -h sunucu

    -u kullanıcı P password postgisdb "SELECT * FROM tablo WHERE id < 10"

Düzenleme: herhangi birinde üç seçenek, özniteliklere dayalı bir seçim yerine bir uzamsal filtre (yani bir sınırlayıcı kutuya düşen özellikler) gerçekleştirebilirsiniz.