python绘制等值线(等高线等水压线等等都可)
本人大三,做给排水管网系统课设时老师要求绘制等水压线图,通常是使用南方cass或者鸿业或天正的相关插件,不过还需要专门下载,网盘也没有会员来不及下载,网上的包也怕有病毒,还不如自己动水,丰衣足食,此时就要用到在数据处理方面堪称万能的python了。
已知二维横纵坐标以及相应坐标的高程数据(或自由水压数据或其他),通过以下代码可以得到等值线图。
点的横纵坐标通过老师给的cad图可以批量获取,高程数据不好批量导出,只能自己一个个从cad里对着打。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.interpolate import griddata as gd
设置基本图片画板
如果有图且需要将等值线绘制在底图上,画板长宽比最好设置成与底图长宽比相同,这样才能在放大后和底图上的坐标一一对应
fig = plt.figure(figsize=(10, 10))
ax = fig.add_subplot(111, facecolor='w', frame_on=False)
规定平面范围
这个就看坐标的跨度自行设置
numcols, numrows = 1000, 1000
xi = np.linspace(0,3000, numcols)
yi = np.linspace(0, 3000, numrows)
xi, yi = np.meshgrid(xi, yi)
提取数据
data = pd.read_csv