爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 993|回复: 2

ncl使用shapefile_mask_data画单省地图报错求助

[复制链接]

新浪微博达人勋

发表于 2023-8-10 16:45:04 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
load "./shapefile_utils.ncl"
file_path1="/cygdrive/e/dust/shuju/2208-2318.txt"
data1 = asciiread(file_path1,(/2018,37/),"float")

file_path2="/cygdrive/e/dust/shuju/1100-1318.txt"
data2 = asciiread(file_path2,(/2018,69/),"float")

;printVarSummary(data)x@_FillValue = x@missing_value
lon=data2(:,0)
lat=data2(:,1)
dust=new((/10,2018/),"float")
;14 20 2302 08 14
k1=(/6,12,18,24,30/)
do i=0,4
dust(i,:)=data1(:,k1(i)+2)
end do
;1102 1112 1212 1214 1220
k2=(/2,12,36,38,44/)

;k2=(/2,8,17,26,32,36,44,50,56,62/)
do i=0,4
dust(i+5,:)=data2(:,k2(i)+2)
end do
dust@_FillValue=-9999.0
;data2@_FillValue=-9999.0
olon = new(28,"float");
olat = new(24,"float");
data11 =new((/10,24,28/),"float")

  do i=0,27
    olon(i) =110+i*0.25
  end do
  do l=0,23
    olat(l) = 31+l*0.25
  end do



lon!0="lon"
lon@long_name="lonitude"
lon@units="degrees_east"
lon&lon=lon
lat!0="lat"
lat@long_name="latitude"
lat@units="degrees_north"
lat&lat=lat

olon!0="lon"
olon@long_name="lonitude"
olon@units="degrees_east"
olon&lon=olon
olat!0="lat"
olat@long_name="latitude"
olat@units="degrees_north"
olat&lat=olat

rscan =(/10,5,1/)  
do i=0,9
data11(i,:,:)=obj_anal_ic_deprecated(lon,lat,dust(i,:),olon,olat,rscan,False)
end do
;在此之前程序是没有问题的
dust_mask= shapefile_mask_data(data11(:,:,:))
;shapefile_utils是在ncl官网下载,看了一些帖子,说是需要改动,但是没有具体说怎么改。。。

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2023-11-3 15:59:12 | 显示全部楼层
报错信息贴出来?
在你现有脚本里有几个问题:
1. data11没有经纬度赋值给维度,shapefile_mask_data需要含经纬度坐标的数据;
2. 印象里shapefile_mask_data应该只能做二维的mask,也就是仅保留经纬度两个维度的数组进行计算,需要对其他维度做循环
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-11-12 11:23:23 | 显示全部楼层
10101010 发表于 2023-11-3 15:59
报错信息贴出来?
在你现有脚本里有几个问题:
1. data11没有经纬度赋值给维度,shapefile_mask_data需要 ...

谢谢大佬,data11是插值后的数据,应该是有经纬度信息的,函数只能做二维的mask我倒真的不知道呢,我写个循环试试,再次感谢回复
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表