2.二维网格节点插值
例 已知平面区域0<=x<=1400,0<=y<=1200的高程数据见下表(单位:m)。求该区域地表面积的近似值,并用插值数据画出该区域的等高线图和三维表面图。
程序代码
from mpl_toolkits import mplot3d
import matplotlib.pyplot as plt
import numpy as np
from numpy.linalg import norm
from scipy.interpolate import interp2d
z=np.loadtxt("Pdata7_5.txt") #加载高程数据
x=np.arange(0,1500,100)
y=np.arange(1200,-100,-100)
f=interp2d(x, y, z, 'cubic')
xn=np.linspace(0,1400,141)
yn=np.linspace(0,1200,121)
zn=f(xn, yn)
m=len(xn); n=len(yn); s=0;
for i in np.arange(m-1):
for j in np.arange(n-1):
p1=np.array([xn[i],yn[j],zn[j,i]])
p2=np.array(