Matplotlib绘制dem
时间: 2024-09-22 08:03:09 浏览: 51
elevation_pthon_DEM_
Matplotlib是一个非常流行的Python数据可视化库,常用于创建各种图表,包括地形图(DEM,Digital Elevation Model)。要在Matplotlib中绘制DEM数据,通常会先加载DEM数据,然后将其转换为适合绘图的数据结构,如网格或轮廓线。
以下是一个简单的步骤:
1. **安装和导入模块**:首先需要安装matplotlib和相关的地理空间处理库(例如rasterio、geopandas等),可以使用`pip install matplotlib rasterio geopandas`命令。
```python
import matplotlib.pyplot as plt
import rasterio
import geopandas as gpd
```
2. **读取DEM数据**:使用`rasterio`读取DEM文件,这可能涉及到文件路径、投影信息等。
```python
dem_file = 'path/to/dem.tif'
with rasterio.open(dem_file) as src:
dem_data = src.read(1)
dem_transform = src.transform
dem_crs = src.crs
```
3. **数据预处理**:将DEM数据可能需要进行一些处理,如归一化、平滑等,以便于在地图上显示。
4. **绘制地形图**:可以使用`imshow`函数将数据转换成图像并显示出来,加上等高线(contourf)或其他几何元素增强视觉效果。
```python
fig, ax = plt.subplots(figsize=(10, 8))
ax.imshow(dem_data, cmap='terrain', extent=dem_transform.bounds)
ax.contour(dem_data, levels=range(int(dem_data.min()), int(dem_data.max()) + 1), colors='black')
plt.title('DEM Visualization')
ax.set_aspect('equal', 'datalim') # 确保比例尺对齐
plt.colorbar(label='Elevation (m)')
```
5. **添加地理位置信息**:如果DEM数据包含了坐标信息,可以使用`gpd`将数据转换为GeoDataFrame,并添加到地图上。
```python
# 如果有经纬度信息
gdf = gpd.GeoDataFrame({'elevation': dem_data}, geometry=gpd.points_from_xy(*src.index[::-1]))
gdf.plot(ax=ax, color='none', markersize=1, edgecolor='white')
阅读全文