При загрузке большого файла geojson в Folium происходит сбой Jupyter Notebook

Я пытаюсь последовать примеру добавления наложения geo_json, найденному здесь. Файл geo_json, который я использую, - это карта почтовых индексов в Германии, найденная здесь. Это большой на 85,8 мб.

Вот мой MWE; Я загрузил файл 'postleitzahlen.geojson' в (pwd является моим "текущим рабочим каталогом") файл pwd/data/postleitzahlen.geojson. Обратите внимание, что та же проблема возникает, даже когда я меняю расширение с нестандартного.geojson на.json.

import folium
# Not sure if I need all of the packages below:
import json
import os

# Center map in middle of Berlin, zoom out enough so all of Germany is visible,
# and use mapbox bright instead of default OpenStreetMap so as to hopefully make
# images easier to render. But it still crashes the notebook anyway.
m=folium.Map(location=[52.5194, 13.4067], tiles='Mapbox Bright', zoom_start=5)

# This is the analog of the example on the Folium website, but I don't really understand it.
# Wouldn't we need to load the file into memory somehow, maybe using geopandas or something?
zipcode_regions = os.path.join('data', 'postleitzahlen.geojson')

# Add the geoJSON layer to map ostensibly:
folium.GeoJson(zipcode_regions, name='geo_json').add_to(m)

# Still crashes regardless of whether I include following line - I think it just adds control in top-right of map on example website, which I don't need.
folium.LayerControl().add_to(m)

m

В Jupyter Notebook (по крайней мере, на моем компьютере) происходит то, что для вывода ячейки, содержащей последнюю строку, просто получается большой пустой пробел. Кроме того, в верхней части написано "Ошибка автосохранения!". И когда кто-то пытается нажать кнопку "Сохранить", ноутбук на мгновение зависает, и тогда ничего не происходит. (Т.е. нет никаких признаков того, что файл был сохранен.)

Я все еще могу запускать новые ячейки (например, выполнять основную арифметику), но ничего не спасает. (РЕДАКТИРОВАТЬ: Нет, слишком часто это приводит к сбою ноутбука в Chrome.)

Это может быть ошибка в Jupyter, IPython или Folium, и в этом случае запрос здесь может не сильно помочь. Но я решил, что постараюсь спросить здесь, по крайней мере.

Глядя на документацию по этой функции (многократно прокручивайте вниз), следует ли мне попробовать (1) установить overlay параметр для True, так как по умолчанию False? (2) настройка smooth_factor до значения, превышающего значение по умолчанию 1.0? (Я попробую оба и обновлю этот пост с любыми результатами.)

Я прочитал эти вопросы, но не понял, как использовать их ответы для решения моей проблемы. Если кто-то может объяснить, как применить эти ответы здесь, я был бы очень признателен. (1) (2) (3) (4) (5)

РЕДАКТИРОВАТЬ: я пытался сделать то, что сделал этот человек, а именно, увеличение лимита данных (в частности, я побежал jupyter notebook --NotebookApp.iopub_data_rate_limit=1.0e10 запустить Jupyter Notebook), но возникла та же ошибка, что и раньше.
РЕДАКТИРОВАТЬ (2): Все еще происходит настройка overlay=True и используя, и не используя увеличение предела данных.
РЕДАКТИРОВАТЬ (3): Настройка smooth_factor в 10, 100, или же 1000 не исправил, хотя предпоследняя клетка работала быстрее. Так что это, скорее всего, проблема с Юпитером, чем с фолием.
Вывод терминала каждый раз для Jupyter Notebook содержит несколько ошибок вида:

Saving file at /map.ipynb
[I 12:00:00.000 NotebookApp] Malformed HTTP message from ::1: Content-Length too long

При более пристальном рассмотрении терминала во время работы ноутбука становится ясно, что эта ошибка возникает именно тогда, когда ноутбук пытается загрузить карту. Далее я попробую решения, предложенные здесь.

РЕДАКТИРОВАТЬ (4): Все еще не работает, пытаясь jupyter notebook --NotebookApp.tornado_settings="{'max_body_size': 104857600, 'max_buffer_size': 104857600}" предложил здесь; также не работает при добавлении трех дополнительных нулей max_body_size а также max_buffer_sizeни при добавлении шести дополнительных нулей к обоим. (Т. Е. Примерно 0,5 петабайта, в миллион раз больше значений по умолчанию.)

РЕДАКТИРОВАТЬ (5): Это теперь опубликовано как проблема на GitHub.

0 ответов

Другие вопросы по тегам