コード例 #1
0
ファイル: get_drifter.py プロジェクト: jian-cui/pyocean
(datetime_wanted,filename,driftnumber,url,model_option,num,interval_dtime,interval,step_size)=getcodar_ctl_file(inputfilename)
id3=int(driftnumber)  #change format

(maxlon,minlon,maxlat,minlat)=getdrift_raw_range_latlon(filename,id3,interval,datetime_wanted,num,step_size)
for i in range(5):
    if maxlat-minlat<=0.1:
        maxlat=maxlat+0.01
        minlat=minlat-0.01
    if maxlon-minlon<=0.1:
        maxlon=maxlon+0.01
        minlon=minlon-0.01
gbox=[minlon-0.03,maxlon+0.03, minlat-0.03, maxlat+0.03]
# get the edge of the picture 

for x in range(num): 
  (lat,lon,time1)=getdrift_raw(filename,id3,interval,datetime_wanted)   
  fig = plt.figure()
  ax = fig.add_subplot(111)   
  plt.title(str(num2date(datetime_wanted).strftime("%d-%b-%Y %H"))+'h')
  lat_wanted=lat[-1]
  lon_wanted=lon[-1]
  plt.plot(lon_wanted,lat_wanted,'.',markersize=30,color='r',label='end')
  
    #plt.plot(np.reshape(lon,np.size(lon)),np.reshape(lat,np.size(lat)))
  plt.plot(np.reshape(lon,np.size(lon)),np.reshape(lat,np.size(lat)),color='black')
    
    #basemap_usgs([minlat-1,maxlat+1],[minlon-1,maxlon+1],'True')
  plt.plot(lon[0],lat[0],'.',markersize=20,color='g',label='start')  # start time
  pylab.ylim([minlat-0.02,maxlat+0.02])
  pylab.xlim([minlon-0.02,maxlon+0.02])
  ax.patch.set_facecolor('lightblue')
コード例 #2
0
from hx import getcodar_ctl_file, getdrift_raw_range_latlon, getcodar_ctl_id
from hx import getdrift_raw, getcodar, gettrack_codar
#### input #########################################################
inputfilename = './getcodar_bydrifter_ctl.txt'
(datetime_wanted, filename, driftnumber, url, model_option, num,
 interval_dtime, interval, step_size) = getcodar_ctl_file(inputfilename)
startdate = datetime_wanted

id3 = int(driftnumber)  #change format
datetime_wanted_1 = datetime_wanted
(maxlon, minlon, maxlat,
 minlat) = getdrift_raw_range_latlon(filename, id3, interval,
                                     datetime_wanted_1, num, step_size)

id = getcodar_ctl_id(model_option, url, startdate)
(lat, lon, time) = getdrift_raw(filename, id3, interval,
                                datetime_wanted)  #drifter lat lon time
la = lat[0]
lo = lon[0]
lat_k, lon_k = [la], [lo]
uu, vv = [0], [0]
for q in range(interval):
    lat_vel, lon_vel, u, v = getcodar(url, id)
    lon_vel_list = lon_vel[0]
    lat_vel_list = []
    for g in range(len(lat_vel)):
        lat_vel_list.append(lat_vel[g][0])

    lat_k1, lon_k1, time1, uu, vv = gettrack_codar(lon_vel_list, lat_vel_list,
                                                   u, v, startdate, interval,
                                                   la, lo, uu, vv, q)
    la = lat_k1
コード例 #3
0
ファイル: getsst_codar_drifter.py プロジェクト: xhx509/codar
(maxlon,minlon,maxlat,minlat)=getdrift_raw_range_latlon(filename,id3,interval,datetime_wanted_1,num,step_size)
for i in range(5):  #make sure the picture can show lat and lon clearly
    if maxlat-minlat<=0.1:
        maxlat=maxlat+0.01
        minlat=minlat-0.01
    if maxlon-minlon<=0.1:
        maxlon=maxlon+0.01
        minlon=minlon-0.01

(lat_max_i,lon_max_i,lat_min_i,lon_min_i)=getcodar_ctl_lalo(model_option,maxlat,maxlon,minlat,minlon)# get index of max min lat lon
gbox=[minlon-0.03,maxlon+0.03, minlat-0.03, maxlat+0.03] # get edge for get sst
for x in range(num):
     
  id=getcodar_ctl_id(model_option,url,datetime_wanted) #get index of codar
  ask_input=num2date(datetime_wanted) #get time for getsst
  (drifter_data)=getdrift_raw(filename,id3,interval,datetime_wanted) #get drifter data
  lat=drifter_data['lat']
  lon=drifter_data['lon']
  (lat_vel,lon_vel,u,v)=getcodar_edge(url,id,lat_max_i,lon_max_i,lat_min_i,lon_min_i) #get codar data
  id=str(id)
  idg1=list(ml.find(np.array(u)<>-999.0/100.))
  idg2=list(ml.find(np.array(lat_vel)>=minlat))
  idg12=list(set(idg1).intersection(set(idg2)))
  idg3=list(ml.find(np.array(lon_vel)>=minlon))
  idg=list(set(idg12).intersection(set(idg3)))     #get index for codar data based on  edge and id(time)
  
  png_num=png_num+1  #for save movie picture
 
  if len(idg)<>0:
  
    fig = plt.figure()
コード例 #4
0
        minlat = minlat - 0.01
    if maxlon - minlon <= 0.1:
        maxlon = maxlon + 0.01
        minlon = minlon - 0.01

(lat_max_i, lon_max_i, lat_min_i,
 lon_min_i) = getcodar_ctl_lalo(model_option, maxlat, maxlon, minlat,
                                minlon)  # get index of max min lat lon
gbox = [minlon - 0.03, maxlon + 0.03, minlat - 0.03,
        maxlat + 0.03]  # get edge for get sst
for x in range(num):

    id = getcodar_ctl_id(model_option, url,
                         datetime_wanted)  #get index of codar
    ask_input = num2date(datetime_wanted)  #get time for getsst
    (lat, lon, time1) = getdrift_raw(filename, id3, interval,
                                     datetime_wanted)  #get drifter data
    (lat_vel, lon_vel, u, v) = getcodar_edge(url, id, lat_max_i, lon_max_i,
                                             lat_min_i,
                                             lon_min_i)  #get codar data
    id = str(id)
    idg1 = list(ml.find(np.array(u) <> -999.0 / 100.))
    idg2 = list(ml.find(np.array(lat_vel) >= minlat))
    idg12 = list(set(idg1).intersection(set(idg2)))
    idg3 = list(ml.find(np.array(lon_vel) >= minlon))
    idg = list(set(idg12).intersection(
        set(idg3)))  #get index for codar data based on  edge and id(time)

    png_num = png_num + 1  #for save movie picture

    if len(idg) <> 0:
コード例 #5
0

utc = pytz.timezone('UTC')
png_num = 0  #for save picture
#option=raw_input("If you have a file of column lat and lon,please input '1'\nIf you want to input points' location, please input '2'\n"
#"If you want to use the control file,please input '3'\n")
if option == '3':
    inputfilename = 'getcodar_bydrifter_ctl.txt'  #default control file
    (datetime_wanted, filename, driftnumber, url, model_option, num,
     interval_dtime, interval, step_size) = getcodar_ctl_file(inputfilename)
    if drifter == 'raw':
        maxlon, minlon, maxlat, minlat, lat, lon = range_latlon(
            filename, driftnumber)
    else:
        drifter_data = getdrift_raw(
            filename, driftnumber, interval,
            datetime_wanted)  #uses pydap to get remote drifter data
        lon = drifter_data['lon']
        lat = drifter_data['lat']
        maxlon = max(lon)
        minlon = min(lon)
        maxlat = max(lat)
        minlat = min(lat)
if option == '2':
    datetime_wanted = date2num(
        dt.datetime.strptime(
            raw_input(
                "please input datetime you wanted, the format like: 2012,8,26,0,0\n"
            ), '%Y,%m,%d,%H,%M'))
    lat_list = raw_input(
        "Please input points SW & NE latitude in order,and split them by ',':")
コード例 #6
0
ファイル: gettrack_codar.py プロジェクト: xhx509/codar
#sys.path.append(pydir)

from hx import getcodar_ctl_file,getdrift_raw_range_latlon,getcodar_ctl_id
from hx import getdrift_raw,getcodar,gettrack_codar    
#### input #########################################################
inputfilename='getcodar_bydrifter_ctl.txt'
(datetime_wanted,filename,driftnumber,url,model_option,num,interval_dtime,interval,step_size)=getcodar_ctl_file(inputfilename)
startdate=datetime_wanted

id3=int(driftnumber)  #change format
datetime_wanted_1=datetime_wanted
(maxlon,minlon,maxlat,minlat)=getdrift_raw_range_latlon(filename,id3,interval,datetime_wanted_1,num,step_size)

id=getcodar_ctl_id(model_option,url,startdate)
(lat,lon,time)=getdrift_raw(filename,id3,interval,datetime_wanted) #drifter lat lon time
la=lat[0]
lo=lon[0] 
lat_k,lon_k=[la],[lo]
uu,vv=[0],[0]
for q in range(interval):
    lat_vel,lon_vel,u,v=getcodar(url,id)
    lon_vel_list=lon_vel[0]
    lat_vel_list=[]
    for g in range(len(lat_vel)):
        lat_vel_list.append(lat_vel[g][0])
       
    lat_k1,lon_k1,time1,uu,vv=gettrack_codar(lon_vel_list,lat_vel_list,u,v,startdate,interval,la,lo,uu,vv,q)
    la=lat_k1
    lo=lon_k1
    lat_k.append(lat_k1)
コード例 #7
0
ファイル: getsst_drifter_raw.py プロジェクト: xhx509/sst
  minlon=min(lon1)
  maxlat=max(lat1)
  minlat=min(lat1)
  return maxlon,minlon,maxlat,minlat,lat1,lon1

utc = pytz.timezone('UTC')
png_num=0 #for save picture
#option=raw_input("If you have a file of column lat and lon,please input '1'\nIf you want to input points' location, please input '2'\n"
#"If you want to use the control file,please input '3'\n")
if option=='3':
    inputfilename='getcodar_bydrifter_ctl.txt' #default control file
    (datetime_wanted,filename,driftnumber,url,model_option,num,interval_dtime,interval,step_size)=getcodar_ctl_file(inputfilename)
    if drifter=='raw':
       maxlon,minlon,maxlat,minlat,lat,lon=range_latlon(filename,driftnumber)
    else:
       drifter_data=getdrift_raw(filename,driftnumber,interval,datetime_wanted) #uses pydap to get remote drifter data
       lon=drifter_data['lon']
       lat=drifter_data['lat']
       maxlon=max(lon)
       minlon=min(lon)
       maxlat=max(lat)
       minlat=min(lat)    
if option=='2':
    datetime_wanted=date2num(dt.datetime.strptime(raw_input("please input datetime you wanted, the format like: 2012,8,26,0,0\n"),'%Y,%m,%d,%H,%M'))
    lat_list=raw_input("Please input points SW & NE latitude in order,and split them by ',':")
    lon_list=raw_input("Please input points lon in order,and split them by ',':")
    lat1=lat_list[0:].split(',')
    lon1=lon_list[0:].split(',')
    lat,lon=[],[]
    for q in range(len(lon1)):
        lat.append(float(lat1[q]))