我已经使用geopandas和geoviews的组合创建了geo-dataframe。我正在使用的库如下:
import pandas as pd
import numpy as np
import geopandas as gpd
import holoviews as hv
import geoviews as gv
import matplotlib.pyplot as plt
import matplotlib
import panel as pn
from cartopy import crs
gv.extension('bokeh')
我已串联3个shapefile,以构建英国医疗保健边界的多边形图片(链接到需要时提供的文件)。不幸的是,从我发现的结果来看,英国不会产生一个将所有这些文件组合在一起的文件,因此不得不合并我感兴趣的3个单独国家/地区的形状文件。这3个形状文件的大小为:] >
形状文件1 = 5mb(https://www.opendatani.gov.uk/dataset/department-of-health-trust-boundaries)
形状文件2 = 204kb(https://geoportal.statistics.gov.uk/datasets/5252644ec26e4bffadf9d3661eef4826_4)
我已经成功地合并了它们,以创建我正在使用的图片:
Test = gv.Polygons(Merged_Shapes, vdims=[('Data'), ('CCG_Name')], crs=crs.OSGB()).options(tools=['hover'], width=550, height=700) Test_2 = gv.Polygons(Merged_Shapes, vdims=[('Data'), ('CCG_Name')], crs=crs.OSGB()).options(tools=['hover'], width=550, height=700)
但是,我希望将这些图表包含在可共享的html文件中。我遇到的问题是,当我使用以下方法保存HTML时:
from bokeh.resources import INLINE layout = hv.Layout(Test + Test_2) Final_report = pn.Tabs(('Test',layout)).save('Map_test.html', resources=INLINE)
我生成了一个显示图表的html文件,但是大小是80mb,这已经很大了,特别是如果我想在同一html中包含更多的多边形图表和其他图表。
从内存的角度,有人知道我可以将多边形图存储在HTML文件中以进行共享吗?
我已经使用geopandas和geoviews的组合创建了geo-dataframe。我正在使用的库如下:将pandas作为pd导入numpy作为np导入geopandas作为gpd导入holoviews作为hv import ...
您可以通过栅格化或抽取形状来缩小文件。对于rasterizng,您可以调用hv.operation.datashader.rasterize(obj),我认为Shapely或GeoPandas中有一些用于简化形状的工具。