Перетворення файлу SimpleGeo Місця GeoJSON у shapefile?


15

Нещодавно SimpleGeo зробив вільний доступ до своїх даних "Місця", які є ВЕЛИКИМИ, тому що тепер ми можемо використовувати їх для власних цілей, навіть офлайн. Тож я пішов про завантаження набору даних 2 ГБ , який містить файли країни-блискавки у форматі GeoJSON.

Ось, звідки починається моя проблема ... Коли я намагаюся завантажити файл країни (* .geojson) безпосередньо в QGIS або навіть перетворити його у shapefile за допомогою ogr2ogr, у мене виявляється лише функція з 1 балом.

Очевидно, що в цих файлах є більше даних, які я не в змозі "побачити" або отримати, то що я роблю неправильно? Чи може хтось надати мені якісь пропозиції щодо того, як перетворити ці файли у корисні функції GIS?

Оновлене запитання: Я дуже хочу перетворити файл geojson у формат-файл (або подібний стандартний формат GIS) для використання в настільному GIS-програмному забезпеченні.

Знімок з блогу SimpleGeo 1 серпня 2011 року :

"Набір даних CCG місць SimpleGeo тепер доступний для завантаження безкоштовно. Якщо ви хочете отримати свої руки на 21М + POI, що охоплюють 63 країни, ми готові передати вам це в одному файлі. Файл приблизно 2 ГБ у форматі .ZIP, і пам’ятайте, що з ліцензією CC0 ці дані стають вашими - вільними та зрозумілими - робити все, що завгодно. Ми сподіваємось, що ви зробите з цим чудові речі! Ви можете завантажити його зараз, натиснувши тут. "

Оновлення: 12 січня 2012 року: Після того, як SimpleGeo був придбаний Urban Airship у жовтні 2011 року, Urban Aiship сказав, що «знищити доступність поточних версій місць, контексту та зберігання SimpleGeo протягом наступних кількох місяців» ... Цільовою датою витягування штекера офіційно буде 31 березня 2012 року. Посилання


3
+1. Слухав Метта Галлігана з SimpleGeo якось назад, кажучи, що місцеві дані - це фактично, і вони повинні бути у вільному доступі. Це контекст, який слід продати. Приємно бачити, що вони означали це. Також хочемо використовувати ці дані.
Ерік

Відповіді:


10

Спробуйте перетворити функції в наступне:

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

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

]}

і розділення кожної функції комою.

Наприклад, ось перші дві функції з набору даних 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"}}

... і ось вони як 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"}}
]}

Після Вашого допису я зрозумів, що я дійсно не пояснив своє запитання, тому відредагував його. Я дуже хотів би перетворити дані у shapefile або інший стандартний GIS-формат для використання у настільних GIS. Вибачте за неякісне запитання, але дякую за відповідь @fod.
RyanKDalton

2
відповідь Fod отримає вас на півдорозі. Вам потрібно буде попередньо обробити всі ці відвали, щоб обернути функції у FeatureCollection, як запропоновано fod, і розділити комами. Простий спосіб зробити це - замінити всі нові рядки на, + новий рядок (тобто \ n з, \ n), а потім укласти в FeatureCollection, через скрипт, або вручну з текстовим редактором. Після виправлення всіх файлів належним GeoJSON, ви можете використовувати ogr2ogr v1.8.0 або пізнішої версії для перетворення GeoJSON у shapefile.
Саса Іветік

Відмінно! Я не усвідомлював, що це потрібно, щоб зробити їх "читабельними". Використовуючи описаний вище метод, я зміг зробити файл читабельним безпосередньо через QGIS. Дякую купу! Я використовував набір даних у Мексиці як хороший зразок, оскільки він був розміром лише 9 к. Тепер вирішити "пошук і заміна" для файлу США @ 7,4 ГБ.
RyanKDalton

Вибачення - я не встиг скористатися раніше, але FYI ви можете відкривати файли GeoJSON безпосередньо в QGIS - не потрібно конвертувати у shapefile. Потім, якщо ви дійсно хочете файл форми, ви можете експортувати шар у такому форматі (Шар-> Зберегти як ...).
fod

Перше, що я спробував - це безпосередньо відкрити файли в QGIS. Проблема полягала в тому, що всі дані були "загорнуті" в один запис, а отже, в один пункт. Мені потрібно було дотримуватися інструкцій, які ви залишили вище, щоб QGIS розпізнавав кожну окрему функцію в наборі даних.
RyanKDalton

4

Дуже дякую @fod & @Sasa Ivetic за те, що поставили мене на правильний шлях! Мені довелося відкласти цей проект на деякий час, але нарешті повернувся до нього сьогодні і хотів передати свої результати, щоб допомогти будь-кому, хто, можливо, боровся з цим.

Використовуючи інформацію, яку вони надали у відповіді @ fod, я написав цей скрипт Python для перетворення дамп-файлів у "належний" формат geojson. Цей скрипт py перетворить дані у формат, який читає ogr2ogr, тоді ви зможете конвертувати їх у будь-який формат, який хочете.

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

Примітка: у вас можуть виникнути проблеми з перетворенням перетворених файлів geojson через ogr2ogr через обмеження оперативної пам'яті. Погляньте на це пов’язане питання: gis.stackexchange.com/questions/16307/…
RyanKDalton

Чудово! Microsoft має обмеження в пам’яті

1

Ви можете спробувати FME для цього. Він читає GeoJSON і пише Shape і - що ще важливіше - має купу "трансформаторів" для обробки JSON (JSONExploder, JSONFlattener, JSONExtractor). Тому я думаю, що це допомогло б вивести вміст у придатний формат.

Також доступна безкоштовна пробна версія!

NB: Я працюю над безпечним програмним забезпеченням, що виробляє FME.


Чи є деякі зразки робочих просторів, які показують, як писати від geojson до shp?
kflaw
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.