15 votos

¿Convertir un archivo GeoJSON de SimpleGeo Places en un shapefile?

SimpleGeo ha puesto recientemente a disposición del público su conjunto de datos "Places", lo cual es estupendo, porque ahora podemos utilizarlo para nuestros propios fines, incluso fuera de línea. Así que me puse a buscar descargar el conjunto de datos de 2 GB que contiene archivos de países comprimidos en formato GeoJSON.

Aquí es donde comienza mi problema... cuando intento cargar un archivo de país (*.geojson) directamente en QGIS o incluso convertirlo a shapefile usando ogr2ogr, termino con sólo 1 característica de punto.

Está claro que hay más datos disponibles en estos archivos que no soy capaz de "ver" o recuperar, así que ¿qué estoy haciendo mal? ¿Puede alguien darme alguna sugerencia sobre cómo convertir estos archivos en características utilizables del SIG?

Pregunta actualizada: Quiero convertir el archivo geojson en un shapefile (o un formato GIS estándar similar) para su uso en un software SIG de escritorio.

Fragmento del blog de SimpleGeo del 1 de agosto de 2011 :

"El conjunto de datos CC0 Places de SimpleGeo ya está disponible para su descarga sin coste alguno. Si quieres tener en tus manos más de 21M de POIs que cubren 63 países, estamos listos para entregártelo en un solo archivo. El archivo tiene unos 2GB en formato .ZIP, y recuerda que con la licencia CC0, estos datos pasan a ser tuyos -libres y gratuitos- para que hagas lo que quieras. Esperamos que hagas cosas increíbles con ellos. Puede descargarlo ahora haciendo clic aquí. "

Actualización: 12 de enero de 2012: Después de que SimpleGeo fuera adquirida por Urban Airship en octubre de 2011, Urban Aiship dijo que "reduciría la disponibilidad de las versiones actuales de [SimpleGeo] Places, Context y Storage en los próximos meses"... La fecha prevista para desconectar oficialmente será el 31 de marzo de 2012. Enlace

10voto

jake Puntos 952

Intenta envolver las características en lo siguiente:

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

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

]}

y separando cada característica con una coma.

Por ejemplo, aquí están las dos primeras características del conjunto de datos IE:

{"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"}}

... y aquí están como GeoJSON FeatureCollection:

{"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"}}
]}

9voto

aditya Puntos 111

¡Muchas gracias a @fod y @Sasa Ivetic por ponerme en el camino correcto! Tuve que dejar este proyecto por un tiempo pero finalmente lo retomé hoy y quería pasar mis resultados para ayudar a cualquier otra persona que haya tenido problemas con esto.

Usando la información que proporcionaron en la respuesta de @fod, escribí este Python script para convertir los archivos de volcado en formato geojson "adecuado". Este py script convertirá los datos en un formato legible por ogr2ogr, luego puedes convertirlo en el formato que desees.

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()

1voto

MobileCushion Puntos 217

Puedes probar FME para hacer esto. Lee GeoJSON y escribe Shape y, lo que es más importante, tiene un montón de "transformadores" para manejar JSON (JSONExploder, JSONFlattener, JSONExtractor). Así que creo que ayudaría a sacar el contenido en un formato utilizable.

También tiene una prueba gratuita disponible.

NB: Trabajo para Safe Software, creadores de FME.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X