Использование st_read для импорта большого geojson в итерациях R

#r #json #parsing #geojson #zipcode

#r #geojson #sf

Вопрос:

Я хочу импортировать очень большой geojson в объект simple features, используя st_read в R, однако требования к оборудованию кажутся большими при преобразовании из geojson в sf. например, импорт данных Microsoft для построения отпечатков для штата Огайо (https://github.com/Microsoft/USBuildingFootprints ) при конвертации geojson объемом 1,2 ГБ потребляет более 32 ГБ оперативной памяти. Является ли их методом для перебора строк geojson в функции, чтобы я мог импортировать части всего файла, не занимая всю эту оперативную память, аналогично пропуску строк в read.csv?

Ответ №1:

Использование library(geojsonsf) , похоже, работает без проблем на моем Mac с 16 ГБ оперативной памяти

 library(geojsonsf)
library(sf)

sf <- geojsonsf::geojson_sf("~/Downloads/Ohio.geojson")

sf
# Simple feature collection with 5449419 features and 0 fields
# geometry type:  POLYGON
# dimension:      XY
# bbox:           xmin: -84.82027 ymin: 38.40334 xmax: -80.51887 ymax: 41.97041
# epsg (SRID):    4326
# proj4string:     proj=longlat  datum=WGS84  no_defs
# First 10 features:
#   geometry
# 1  POLYGON ((-84.81222 39.9087...
# 2  POLYGON ((-84.80084 39.8882...
# 3  POLYGON ((-84.78565 39.8811...
# 4  POLYGON ((-84.7373 39.9014,...
# 5  POLYGON ((-84.73916 39.8980...
# 6  POLYGON ((-84.80422 39.8646...
# 7  POLYGON ((-84.80025 39.8592...
# 8  POLYGON ((-84.79336 39.8593...
# 9  POLYGON ((-84.79268 39.8604...
# 10 POLYGON ((-84.80194 39.8639...
  

Комментарии:

1. Впечатляет, почему быстрее, чем SF? Включает ли он исходные файлы CPP?

2. @Sergio — да, но так и есть sf . Основное отличие заключается в том, что он использует rapidjson , который является одной из самых быстрых библиотек синтаксического анализа JSON

3. Ах да, это намного эффективнее, чем st_read. Спасибо за помощь!

4. Второе это. Моя оперативная память отказывала всеми возможными способами, пытаясь загрузить мой файл geojson, потребовалось меньше минуты с geojson_sf.

5. Блестяще. Спасибо @SymbolixAU! У меня была буквально такая же проблема. Обычно я бы ogr2ogr создал Postgres db, пространственный фильтр для AOI и т.д., Но этот анализатор geojson работает очень быстро. Очень хорошо сделано! github.com/SymbolixAU/geojsonsf