Skip to content
Snippets Groups Projects
Commit 97212be8 authored by rink's avatar rink
Browse files

use numpy logical funcs to remove inefficient for loop counter

parent d23adae6
No related branches found
No related tags found
No related merge requests found
import os import os
import numpy
# Import CODA definitions # Import CODA definitions
# Older dates # Older dates
...@@ -8,7 +9,7 @@ os.putenv('CODA_DEFINITION', '/data/Personal/stevew/AEOLUS/CODA/share/coda/defin ...@@ -8,7 +9,7 @@ os.putenv('CODA_DEFINITION', '/data/Personal/stevew/AEOLUS/CODA/share/coda/defin
# Newer dates # Newer dates
#os.putenv('CODA_DEFINITION', '/home/huiliu/CODA/share/coda/definitions/AEOLUS-20190611.codadef') #os.putenv('CODA_DEFINITION', '/home/huiliu/CODA/share/coda/definitions/AEOLUS-20190611.codadef')
from numpy import vstack, zeros, linspace, where from numpy import vstack, zeros, linspace, where, logical_and
import sys import sys
# Tell python scripts where to find CODA (next import coda) -------- # Tell python scripts where to find CODA (next import coda) --------
...@@ -161,29 +162,20 @@ for n, filename in enumerate(files): ...@@ -161,29 +162,20 @@ for n, filename in enumerate(files):
min = timestep.strftime('%M') min = timestep.strftime('%M')
sec = timestep.strftime('%S') #klukens sec = timestep.strftime('%S') #klukens
totlevs = 0 totlevs = numpy.sum(logical_and(mie_valid[i, :] > 0, logical_and(rid[i, :] > 0, mie_err[i, :] < wind_err_thresh)))
for m in range(nlevm):
if rid[i, m] > 0:
if mie_err[i, m] < wind_err_thresh:
if mie_valid[i, m] > 0.0:
totlevs = totlevs + 1
if totlevs > 0: if totlevs > 0:
if typ_id[i] == 1: if typ_id[i] == 1:
# cloudy type Mie winds # cloudy type Mie winds
# print >>f60, yyyy, mm, dd, hh, min, sec, '%7.2f %7.2f %2i' %(float(lonrid[i]), float(latrid[i]), int(totlevs)) print(yyyy, mm, dd, hh, min, sec, '%7.2f %7.2f %2i' % (float(lonrid[i]), float(latrid[i]), int(totlevs)), file=f60)
print(yyyy, mm, dd, hh, min, sec, '%7.2f %7.2f %2i' %(float(lonrid[i]), float(latrid[i]), int(totlevs)), file=f60)
for m in range(nlevm): for m in range(nlevm):
# keep consistent with the lines of totlevs above !!! # keep consistent with the lines of totlevs above !!!
if rid[i, m] > 0: if rid[i, m] > 0:
if mie_err[i, m] < wind_err_thresh: if mie_err[i, m] < wind_err_thresh:
if mie_valid[i, m] > 0.0: if mie_valid[i, m] > 0.0:
# print >>f60, '%2i %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f' %(int(m+1), \ print('%2i %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f' % (int(m+1),
# mie_hhh[i,m], mie_hht[i,m], mie_hhb[i,m], mie_err[i,m], \
# mie_azimuth[i,m], mie_wind[i,m], mie_length[i,m])
print('%2i %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f' %(int(m+1),
mie_hhh[i,m], mie_hht[i,m], mie_hhb[i,m], mie_err[i,m], mie_hhh[i,m], mie_hht[i,m], mie_hhb[i,m], mie_err[i,m],
mie_azimuth[i,m], mie_wind[i,m], mie_length[i,m]), file=f60) mie_azimuth[i,m], mie_wind[i,m], mie_length[i,m]), file=f60)
...@@ -275,25 +267,21 @@ for n, filename in enumerate(files): ...@@ -275,25 +267,21 @@ for n, filename in enumerate(files):
if ray_valid[i, m] > 0.0: if ray_valid[i, m] > 0.0:
totlevs = totlevs + 1 totlevs = totlevs + 1
totlevs = numpy.sum(logical_and(ray_valid[i, :] > 0, logical_and(rid[i, :] > 0, ray_err[i, :] < wind_err_thresh)))
# for clear sky Rayleigh winds ---------- # for clear sky Rayleigh winds ----------
if totlevs > 0: if totlevs > 0:
if typ_id[i] == 2: if typ_id[i] == 2:
# print >>f66, yyyy, mm, dd, hh, min, sec, '%7.2f %7.2f %2i' %(float(lonrid[i]), float(latrid[i]), int(totlevs)) print(yyyy, mm, dd, hh, min, sec, '%7.2f %7.2f %2i' % (float(lonrid[i]), float(latrid[i]), int(totlevs)), file=f66)
print(yyyy, mm, dd, hh, min, sec, '%7.2f %7.2f %2i' %(float(lonrid[i]), float(latrid[i]), int(totlevs)), file=f66)
for m in range(nlev): for m in range(nlev):
# keep consistent with the lines of totlevs above !!! # keep consistent with the lines of totlevs above !!!
if rid[i, m] > 0: if rid[i, m] > 0:
if ray_err[i,m] < wind_err_thresh: if ray_err[i,m] < wind_err_thresh:
if ray_valid[i, m] > 0.0: if ray_valid[i, m] > 0.0:
# print >>f66, '%2i %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f' \
# %(int(m+1), ray_hhh[i,m], ray_hht[i,m], ray_hhb[i,m],\
# ray_err[i,m], ray_azimuth[i,m], ray_wind[i,m],\
# ref_temp[i,m]*0.01, ref_pppp[i,m], wind_sens_T[i,m],\
# wind_sens_P[i,m], ray_sratio [i,m], ray_length[i,m])
print('%2i %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f' print('%2i %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f'
%(int(m+1), ray_hhh[i,m], ray_hht[i,m], ray_hhb[i,m], % (int(m+1), ray_hhh[i,m], ray_hht[i,m], ray_hhb[i,m],
ray_err[i,m], ray_azimuth[i,m], ray_wind[i,m], ray_err[i,m], ray_azimuth[i,m], ray_wind[i,m],
ref_temp[i,m]*0.01, ref_pppp[i,m], wind_sens_T[i,m], ref_temp[i,m]*0.01, ref_pppp[i,m], wind_sens_T[i,m],
wind_sens_P[i,m], ray_sratio [i,m], ray_length[i,m]), file=f66) wind_sens_P[i,m], ray_sratio [i,m], ray_length[i,m]), file=f66)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment