begin ; Note: it in the l_obs array is not "time," but an index representing 10 minute intervals. filename="wrfinput_d03.nc" a = addfile(filename,"r") l_obs_new =wrf_user_getvar(a,"L_OBS",0) l_obs_new := a->L_OBS ; dims_lobs = dimsizes(l_obs_old) printVarSummary(l_obs_new) xlat2d=wrf_user_getvar(a,"XLAT",0) xlon2d=wrf_user_getvar(a,"XLONG",0) dims3d = dimsizes(l_obs_new) ; l_obs_new=new((/dims3d(0),dims3d(1),dims3d(2)/),float) ; L_OBS=new((/dims3d(0),dims3d(1),dims3d(2)/),float) print(" dims3d(0) = " + dims3d(0)) print(" dims3d(1) = " + dims3d(1)) print(" dims3d(2) = " + dims3d(2)) print(" dims3d(3) = " + dims3d(3)) ; read lightning data ;;;; ; read ascii file a_asc = (/"lobs_output_1.3km.txt"/) ;---Read the data in as a giant 1D array values = asciiread(a_asc,-1,"float") nvals = dimsizes(values) print("nvals = " + nvals) nx=dims3d(3) ny=dims3d(2) print("nx = " + nx) print("ny = " + ny) ;---Calculate ntime based on the number of values we read in. n_l_times = nvals - ((nvals/nx)*ny) print("n_l_times = " + n_l_times) n_l_times = 59 nvars = 10 nxy = nx * ny nblk = nxy * nvars ; create variables to hold the ascii file variables. n_t_vars=5 time_array = new((/n_t_vars/),integer) year = new((/n_l_times,ny,nx/),integer) month = new((/n_l_times,ny,nx/),integer) day = new((/n_l_times,ny,nx/),integer) hour = new((/n_l_times,ny,nx/),integer) minute = new((/n_l_times,ny,nx/),integer) lat_a = new((/n_l_times,ny,nx/),float) lon_a = new((/n_l_times,ny,nx/),float) ii = new((/n_l_times,ny,nx/),integer) jj = new((/n_l_times,ny,nx/),integer) total_light = new((/n_l_times,ny,nx/),float) ic_cg = new((/ny,nx/),float) do it=0,n_l_times-1 nstart = it*(nblk+1)+1 nend = nstart+nblk-1 year(it,:,:) = toint(reshape(values(nstart:nend:nvars),(/ny,nx/))) month(it,:,:) = toint(reshape(values(nstart+1:nend:nvars),(/ny,nx/))) day(it,:,:) = toint(reshape(values(nstart+2:nend:nvars),(/ny,nx/))) hour(it,:,:) = toint(reshape(values(nstart+3:nend:nvars),(/ny,nx/))) minute(it,:,:) = toint(reshape(values(nstart+4:nend:nvars),(/ny,nx/))) lat_a(it,:,:) = (reshape(values(nstart+5:nend:nvars),(/ny,nx/))) lon_a(it,:,:) = (reshape(values(nstart+6:nend:nvars),(/ny,nx/))) ii(it,:,:) = toint(reshape(values(nstart+7:nend:nvars),(/ny,nx/))) jj(it,:,:) = toint(reshape(values(nstart+8:nend:nvars),(/ny,nx/))) ; total_light(it,:,:) = (reshape(values(nstart+9:nend:nvars),(/ny,nx/))) total_light(it,:,:) = (reshape(values(nstart+9:nend:nvars),(/ny,nx/))) end do print("total light") printMinMax(total_light,False) ; l_obs_new = 0. ; l_obs_new@lat2d = xlat2d ; add attributes ; l_obs_new@lon2d = xlon2d ; add attributes do it=0,n_l_times-1 l_obs_new(0,it,:,:) = (/total_light(it,:,:)/) end do ; L_OBS@lat2d = xlat2d ; add attributes ; L_OBS@lon2d = xlon2d ; add attributes ; write new data into same file as read in f = addfile(filename,"w") ; printVarSummary(L_OBS) ; f->L_OBS := l_obs_new f->L_OBS = l_obs_new end