#json #visualization #bokeh #geopandas
Вопрос:
Я пытаюсь создать гео-карту, используя эти данные, которые отображают все почтовые индексы в Нью-Йорке: https://data.cityofnewyork.us/Health/Modified-Zip-Code-Tabulation-Areas-MODZCTA-Map/5fzm-kpwv . Я использовал geopandas для чтения данных в виде фрейма геоданных, использовал shapely.wkt — loads на multipoloygon и установил соответствующий столбец в качестве геометрии.
Затем я загрузил эти данные переписи дерева (https://data.cityofnewyork.us/Environment/2015-Street-Tree-Census-Tree-Data/uvpi-gqnh ) в df и объединил их в столбце zipcode (я сам переименовал cols, поскольку наборы данных использовали разные термины).
Моя цель — создать интерактивную гео, а именно с использованием Bokeh, который, как я понимаю, использует GeoJSON. Для достижения этого я использовал следующий код: скриншот кода JNB
Однако для выполнения кода требуется чрезвычайно много времени: nyc_trees = json.loads(nyc_trees.to_json())
Я тоже пробовал ujson, но это не помогло с выбором времени. Есть ли способ ускорить это или обойти?
Комментарии:
1. Вы можете увидеть быстрый рендеринг полигонов на основе Bokeh для всех зданий в Нью-Йорке, который, предположительно, значительно превышает количество почтовых индексов в Нью-Йорке, на examples.pyviz.org/nyc_buildings . Если вы можете использовать этот подход, конечно, это будет очень быстро! Но обратите внимание, что в примере используются данные, преобразованные в формат Parquet, в то время как JSON будет значительно медленнее, поэтому сначала вам нужно преобразовать из JSON (что, как я знаю, является вашим узким местом прямо сейчас!).).
2. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.