SimpleGeo Places GeoJSON dosyasını şekil dosyasına dönüştürme?


15

SimpleGeo yakın zamanda "Yerler" veri setini BÜYÜK olan serbestçe kullanılabilir hale getirdi, çünkü şimdi kendi amaçlarımızda, hatta çevrimdışı olarak kullanabiliyoruz. Bu nedenle , GeoJSON formatında sıkıştırılmış ülke dosyalarını içeren 2GB veri kümesini indirmeye devam ettim .

İşte benim sorunum burada başlıyor ... Bir ülke dosyasını (* .geojson) doğrudan QGIS'e yüklemeye çalıştığımda, hatta ogr2ogr kullanarak şekil dosyasına dönüştürdüğümde, sadece 1 puan özelliği ile sonuçlanıyorum.

Açıkçası bu dosyalarda "göremediğim" ya da alamadığım daha fazla veri var, bu yüzden ne yapıyorum? Birisi bana bu dosyaların kullanılabilir GIS özelliklerine nasıl dönüştürüleceğine dair herhangi bir öneri verebilir mi?

Güncel Soru: Gerçekten geojson dosyasını bir masaüstü GIS yazılımında kullanmak için bir şekil dosyasına (veya benzer bir standart GIS biçimine) dönüştürmek istiyorum .

1 Ağu 2011 tarihinde SimpleGeo blogundan snippet :

"SimpleGeo'nun CC0 Places veri seti artık ücretsiz olarak indirilebilir. 63 ülkeyi kapsayan 21M + İÇN'ye ulaşmak istiyorsanız, bunu size tek bir dosyada teslim etmeye hazırız. Dosya yaklaşık .ZIP biçiminde 2GB ve CC0 lisansı ile, bu veriler sizin olur, unutmayın - özgür ve temiz -. istediğini yapmak Biz onunla müthiş şeyler yapmak umut! buraya tıklayarak hemen indirebilirsiniz. "

Güncelleme: 12 Ocak 2012: SimpleGeo Ekim 2011'de Urban Airship tarafından satın alındıktan sonra Urban Aiship, “önümüzdeki birkaç ay boyunca [SimpleGeo's] Places, Context ve Storage'ın mevcut sürümlerinin kullanılabilirliğini azaltın.” ... Fişi resmi olarak çekmenin hedef tarihi 31 Mart 2012 olacaktır. Bağlantı


3
+1. SimpleGeo'dan Matt Galligan'ı bir süre önce yerel verilerin gerçek bir konu olduğunu ve serbestçe erişilebilir olması gerektiğini söyledi. Satılması gereken bağlamdır. 'Onlar' demek istediğini görmek güzel. Ayrıca bu verilerden yararlanmaya istekli.
Erick

Yanıtlar:


10

Özellikleri aşağıdakilere kaydırmayı deneyin:

{"type":"FeatureCollection","features":[ 

****ALL THE DATA HERE -- COMMA SEPARATED****

]}

ve her özelliğin virgülle ayrılması.

Örneğin, IE veri kümesindeki ilk iki özellik şunlardır:

{"geometry": {"type": "Point", "coordinates": [-6.422587, 53.293363]}, "type": "Feature", "id": "SG_41u80gC4971D4Gc0Fv1p8q_53.293363_-6.422587@1308163237", "properties": {"website": "http://www.buongiorno.com", "city": "Dublin", "name": "Buongiorno", "tags": ["mobile", "vas", "community", "social-networking", "connected-devices", "android", "tablets", "smartphones"], "country": "IE", "classifiers": [{"category": "Professional", "type": "Services", "subcategory": "Computer Services"}], "href": "http://api.simplegeo.com/1.0/features/SG_41u80gC4971D4Gc0Fv1p8q_53.293363_-6.422587@1308163237.json", "address": "Lake Drive City West Digital Park", "owner": "simplegeo", "postcode": "3050"}}
{"geometry": {"type": "Point", "coordinates": [-6.250848, 53.339347]}, "type": "Feature", "id": "SG_1dnWbWIg8hX3VyfUKIDRz9_53.339347_-6.250848@1308163237", "properties": {"website": "http://www.simchronise.com", "city": "Dublin", "name": "SIMchronise", "tags": ["mobile-solutions", "mobile-data", "data-synchronisation", "mobile-security", "backup", "restore", "mobile-contacts", "web-2.0-addressbook", "phonebackup"], "country": "IE", "classifiers": [{"category": "Professional", "type": "Services", "subcategory": "Computer Services"}], "href": "http://api.simplegeo.com/1.0/features/SG_1dnWbWIg8hX3VyfUKIDRz9_53.339347_-6.250848@1308163237.json", "address": "78 Merrion Square", "owner": "simplegeo", "postcode": "Dublin2"}}

... ve burada bir GeoJSON FeatureCollection olarak varlar:

{"type":"FeatureCollection","features":[ 
{"geometry": {"type": "Point", "coordinates": [-6.422587, 53.293363]}, "type": "Feature", "id": "SG_41u80gC4971D4Gc0Fv1p8q_53.293363_-6.422587@1308163237", "properties": {"website": "http://www.buongiorno.com", "city": "Dublin", "name": "Buongiorno", "tags": ["mobile", "vas", "community", "social-networking", "connected-devices", "android", "tablets", "smartphones"], "country": "IE", "classifiers": [{"category": "Professional", "type": "Services", "subcategory": "Computer Services"}], "href": "http://api.simplegeo.com/1.0/features/SG_41u80gC4971D4Gc0Fv1p8q_53.293363_-6.422587@1308163237.json", "address": "Lake Drive City West Digital Park", "owner": "simplegeo", "postcode": "3050"}},
{"geometry": {"type": "Point", "coordinates": [-6.250848, 53.339347]}, "type": "Feature", "id": "SG_1dnWbWIg8hX3VyfUKIDRz9_53.339347_-6.250848@1308163237", "properties": {"website": "http://www.simchronise.com", "city": "Dublin", "name": "SIMchronise", "tags": ["mobile-solutions", "mobile-data", "data-synchronisation", "mobile-security", "backup", "restore", "mobile-contacts", "web-2.0-addressbook", "phonebackup"], "country": "IE", "classifiers": [{"category": "Professional", "type": "Services", "subcategory": "Computer Services"}], "href": "http://api.simplegeo.com/1.0/features/SG_1dnWbWIg8hX3VyfUKIDRz9_53.339347_-6.250848@1308163237.json", "address": "78 Merrion Square", "owner": "simplegeo", "postcode": "Dublin2"}}
]}

Gönderdikten sonra sorumu gerçekten netleştirmediğimi fark ettim, bu yüzden düzenledim. Verileri bir masaüstü CBS'de kullanmak için şekil dosyasına veya diğer standart GIS formatına dönüştürmek istiyorum. Kötü ifade edilen soru için özür dilerim ama cevap @fod için teşekkürler.
RyanKDalton

2
fod'un cevabı sizi yarıya indirecektir. Bir FeatureCollection içindeki özellikleri önerildiği gibi sarmak ve virgüllerle ayırmak için bu dökümlerin tümünü önceden işlemeniz gerekir. Bunu yapmanın kolay yolu, tüm yeni satırları bir + yeni satırıyla (yani \ n ile, \ n) değiştirmek ve daha sonra bir komut dosyasıyla veya el ile bir metin düzenleyicisiyle FeatureCollection içine yerleştirmektir. Tüm dosyaları uygun GeoJSON olacak şekilde düzelttikten sonra, GeoJSON'u şekil dosyasına dönüştürmek için ogr2ogr v1.8.0 veya üstünü kullanabilirsiniz.
Sasa Ivetic

Mükemmel! Onları "okunabilir" kılmak için gerekenlerin farkında değildim. Yukarıda açıklanan yöntemi kullanarak, dosyayı doğrudan QGIS aracılığıyla okunabilir hale getirebildim. Çok teşekkürler! Meksika veri kümesini iyi bir örnek olarak kullandım, çünkü sadece 9k dosya boyutundaydı. Şimdi ABD dosya @ 7.4 GB için "arama ve değiştirme" mücadele etmek.
RyanKDalton

Özür dilerim - daha erken takip etmek için zamanım yoktu ama FYI GeoJSON dosyalarını doğrudan QGIS'de açabilirsiniz - şekil dosyasına dönüştürmeye gerek yoktur. Ardından, gerçekten bir şekil dosyası istiyorsanız, katmanı bu biçimde dışa aktarabilirsiniz (Katman-> Farklı Kaydet ...).
fod

Denediğim ilk şey dosyaları doğrudan QGIS'te açmaktı. Sorun, tüm verilerin bir kayıtta ve dolayısıyla bir noktada "tamamlanması" idi. QGIS'in veri kümesindeki her bir özelliği tanıması için yukarıda bıraktığınız talimatları izlemem gerekiyordu.
RyanKDalton

4

Beni doğru yola koyduğunuz için @fod & @Sasa Ivetic'e çok teşekkür ederim! Bu projeyi bir süreliğine bitirmek zorunda kaldım ama sonunda bugün geri döndüm ve bununla mücadele etmiş olabilecek herkese yardım etmek için sonuçlarımı iletmek istedim.

@ Fod cevabında verilen bilgileri kullanarak, döküm dosyalarını "uygun" geojson formatında dönüştürmek için bu Python betiğini yazdım. Bu py komut dosyası, verileri ogr2ogr tarafından okunabilir formata dönüştürür, daha sonra istediğiniz formata dönüştürebilirsiniz.

infile = sys.argv[1]
outfile = sys.argv[2]


## Prepare the input/output for read/write of files
fin = open(infile, 'r')
fout = open(outfile, 'w')


##Prepend the new file with approriate header info
fout.write('{"type":"FeatureCollection","features":[' + '\n')


## Read each line from the input and write to the output
for line in fin:
    ##write each line in the table, and replace carriage returns with "," + carriage return
    fout.write(line.replace("\n",",\n"))

##Append the new file with approriate footer info
fout.write(']}')

##Close the input and output files to release file locking
fin.close()
fout.close()

Not: OS bellek sınırlamaları nedeniyle dönüştürülen geojson dosyalarını ogr2ogr aracılığıyla dönüştürürken sorun yaşayabilirsiniz. Bu ilgili soruya bir göz atın: gis.stackexchange.com/questions/16307/…
RyanKDalton

Harika ! Microsoft'un bellek sınırlamaları vardır

1

Bunu yapmak için FME'yi deneyebilirsiniz . GeoJSON'u okur ve Shape yazar ve daha da önemlisi JSON (JSONExploder, JSONFlattener, JSONExtractor) için bir grup "transformatör" içerir. Bu yüzden içeriğin kullanılabilir bir biçime çıkarılmasına yardımcı olacağını düşünüyorum.

Ayrıca ücretsiz bir deneme sürümü var!

Not: FME'nin yapımcıları olan Güvenli Yazılım için çalışıyorum.


geojson'dan shp'ye nasıl yazılacağını gösteren bazı örnek çalışma alanları var mı?
kflaw
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.