ncl提取等高线上的点的坐标
时间: 2023-10-24 11:07:47 浏览: 310
要提取等高线上的点的坐标,可以使用NCL中的`gsn_csm_contour`函数和`gsn_csm_contour_line`函数。具体步骤如下:
1. 使用`gsn_csm_contour`函数绘制等高线图,并将等高线的线段保存为一个变量,例如`contourLines`:
```
res = True
res@cnFillOn = False
res@cnLinesOn = True
res@cnLineLabelsOn = False
res@cnLineThicknessF = 2.0
res@cnLineColor = "black"
res@cnLevelSelectionMode = "ExplicitLevels"
res@cnLevels = (/ 1000, 1500, 2000, 2500, 3000 /)
plot = gsn_csm_contour(wks, data, res)
contourLines = plot&cnLineDrawOrder
```
2. 使用`gsn_csm_contour_line`函数提取等高线上的点的坐标,并将坐标保存为两个变量,例如`xPoints`和`yPoints`:
```
xPoints = new((/0/),typeof(contourLines))
yPoints = new((/0/),typeof(contourLines))
do i=0,dim_contourLines-1
res = True
res@gsLineThicknessF = 2.0
res@gsLineColor = "red"
res@gsMarkerIndex = 16
res@gsMarkerSizeF = 0.01
res@gsMarkerColor = "red"
res@gsMarkerThicknessF = 2.0
res@gsLineDashPattern = 0
res@gsLineLabelFontHeightF = 0.02
res@gsLineLabelFontColor = "red"
res@gsLineLabelString = ""
plot = gsn_csm_contour_line(wks, data, contourLines(i,:), res)
xPoints(i) = plot&gsXArray(0)
yPoints(i) = plot&gsYArray(0)
end do
```
上述代码中,`contourLines(i,:)`表示提取第i条等高线的坐标,`plot&gsXArray(0)`和`plot&gsYArray(0)`表示提取等高线上的第一个点的x和y坐标。将所有等高线上的点的x和y坐标都保存在`xPoints`和`yPoints`中。
以上代码中使用了NCL中的一些绘图函数和变量,需要根据实际情况进行修改。
阅读全文