点击下面卡片,快速关注本公众号
在数据科学领域,地图可视化是理解地理空间数据的重要方式。然而,当数据量变得非常大时,传统的可视化方法往往难以实现可视化功能。本文将介绍两个基于 xarray 扩展的开源Python库:xarray-leaflet和xtrude,它们分别针对二维和三维地图可视化提供了高效的解决方案。这两个库充分利用了前端的切片技术以及 xarray 的数据处理能力,使其能够轻松处理存储在云端或本地的大型数据集。
xarray-leaflet:二维切片地图数据可视化
xarray-leaflet 是一个基于ipyleaflet(以及底层的 LeafletJS)的xarray扩展库,专为 二维地图可视化而设计。它允许用户通过xarray对象直接绘制地图,并具备以下特性:
切片渲染: xarray-leaflet的核心思想是“切片渲染”。在Web地图中,地图通常会被分割成许多小的瓦片(tiles),每个瓦片通常为256x256像素。xarray-leaflet 会根据地图的当前视图,向后端请求必要的瓦片数据。这种方式可以避免一次性加载所有数据,显著提升渲染效率,尤其是在处理大数据集时。
自定义投影: xarray-leaflet支持自定义地图投影,这使得它可以处理各种不同类型的空间数据。虽然库默认使用的Web Mercator (EPSG:3857)投影在很多情况下已经足够,但有时我们需要使用特定的投影方式,例如,极地地区的EPSG:3413投影。自定义投影功能使得xarray-leaflet可以更加灵活地应对不同的地理场景。
数据处理管道: xarray-leaflet提供了一个灵活的数据处理管道,可以对数据进行各种转换。该管道包含以下几个阶段:
transform0: 对整个xarray数据集进行操作,常用于数据的全局归一化处理,将数值范围调整到0到1之间。
transform1: 对当前地图视图可见的数据部分进行操作,用于动态调整显示效果。
transform2: 对每个瓦片的数据进行预处理,例如,数据降采样以适应瓦片的大小。
transform3: 对每个瓦片的数据进行最终处理,例如,应用样式或颜色映射。
动态和静态模式: xarray-leaflet支持动态和静态两种模式。动态模式下,地图会根据缩放级别和视角位置动态加载和更新瓦片数据,提供更为流畅的交互体验。静态模式下,地图则会保持相对不变,渲染效率更高。
Dask 集成: xarray-leaflet与Dask集成,可以利用Dask的惰性计算能力,实现并行处理瓦片数据,进一步提升处理效率。这对于处理大型数据来说至关重要。
Zarr 支持: 如果数据以Zarr格式存储,xarray-leaflet可以直接读取Zarr文件,而无需将所有数据加载到内存中。
链接地址:https://github.com/xarray-contrib/xarray_leaflet
安装方法:
# 使用 pip 安装
pip install xarray_leaflet
# 使用 conda 安装
conda install xarray_leaflet
xtrude:三维地形数据可视化
xtrude是xarray-leaflet的3D版本,它基于pydeck (以及底层的deck.gl) 实现3D地形可视化。与xarray-leaflet相似,xtrude也利用了切片技术和xarray的数据处理能力,可以高效地渲染大型三维地形数据。其主要特性包括:
3D瓦片渲染: xtrude使用与xarray-leaflet类似的切片渲染方式,将地形数据分割成瓦片,并根据视角位置动态加载。
高度数据支持: xtrude接受xarray的DataArray作为高度数据(DEM),并将其渲染成 三维地形。
表面纹理: 除了地形高度,xtrude还支持添加表面纹理,例如,卫星影像或其它类型的栅格数据。这使得用户可以更好地理解地形信息。
Jupyter Notebook 集成: xtrude与Jupyter Notebook集成良好,用户可以在Notebook中直接交互式地探索三维地形数据。
Zarr 支持: xtrude同样可以利用Zarr存储数据,实现处理大规模数据。
链接地址:https://github.com/davidbrochart/xtrude
安装方法:
# 使用 conda 安装
conda install -c conda-forge xtrude
# 使用 pip 安装
pip install xtrude
xarray-leaflet和xtrude扩展了xarray的功能,使得用户可以更方便地进行大型地图可视化。它们的核心优势在于切片渲染以及与并行处理库Dask的集成,这使得它们可以高效处理大规模的数据。这两个库不仅为地图可视化提供了一种新的思路,也进一步体现了xarray在空间数据处理方面的潜力。