python绘制地下水位等值线——测试数据
数据都是编的,不是真实的,主要用于测试。
准备测试数据groundwater_data.txt,第一列代表经度,第二列代表维度,第三列代表水位深度。
数据如下:
110 30 8
111 31 10
120 28 15
115 40 38
110 35 5
125 25 3
130 25 0
代码如下:
import numpy as np
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
# 假设data包含经度、纬度、地下水位的数据
data = np.loadtxt('groundwater_data.txt') # 请替换为你的实际文件路径
longitude = data[:, 0]
latitude = data[:, 1]
groundwater_level = data[:, 2]
# 创建地图投影
ax = plt.axes(projection=ccrs.PlateCarree())
# 绘制等值线
contours = plt.tricontourf(longitude, latitude, groundwater_level, 10, cmap='viridis')
# 添加颜色条
plt.colorbar(contours, orientation="horizontal")
# # 添加地图特征
# ax.coastlines()
# ax.gridlines()
# 添加一些地图特征
ax.add_feature(cfeature.COASTLINE)
ax.add_feature(cfeature.BORDERS, linestyle=':')
ax.add_feature(cfeature.LAND, edgecolor='black')
ax.add_feature(cfeature.LAKES, edgecolor='black')
ax.add_feature(cfeature.RIVERS)
# 添加经纬度网格线
ax.gridlines(draw_labels=True, dms=True, x_inline=False, y_inline=False)
# 添加标题和标签
plt.title('Groundwater Contour')
plt.xlabel('Longitude')
plt.ylabel('Latitude')
# 显示图形
plt.show()
结果如下图,由于测试数据较少,等值线有明显棱角。如果有更好的绘制地下水位等值线的方法欢迎留言讨论,不胜感激。