コード例 #1
0
ファイル: errorMapLayer.py プロジェクト: jian-cui/turtle
FONTSIZE = 25
criteria = 10  # error criteria
layer = 15  # the first layer you want to plot

obs = pd.read_csv("ctd_good.csv")  # From nearestIndexInMod.py
tf_index = np.where(obs["TF"].notnull())[0]
obsLon, obsLat = obs["LON"][tf_index], obs["LAT"][tf_index]
obsTime = pd.Series(np_datetime(obs["END_DATE"][tf_index]), index=tf_index)
obsTemp = pd.Series(str2ndlist(obs["TEMP_VALS"][tf_index]), index=tf_index)
# obsTemp = pd.Series(bottom_value(obs['TEMP_VALS'][tf_index]), index=tf_index)
obsDepth = pd.Series(str2ndlist(obs["TEMP_DBAR"][tf_index]), index=tf_index)
modDepthLayer = pd.Series(str2ndlist(obs["modDepthLayer"][tf_index], bracket=True), index=tf_index)

starttime = datetime(2009, 8, 24)  # Choose the starttime and endtime that cover the whole observation time range.
endtime = datetime(2013, 12, 13)
tempObj = wtm.waterCTD()
url = tempObj.get_url(starttime, endtime)
modTemp = tempObj.watertemp(obsLon.values, obsLat.values, obsDepth.values, obsTime.values, url)

d = {
    "lon": obsLon,
    "lat": obsLat,
    "time": obsTime.values,
    "obstemp": obsTemp.values,
    "depth": obsDepth,
    "modlayer": modDepthLayer.values,
    "modtemp": modTemp,
}
a = pd.DataFrame(d, index=tf_index)

ind = []  # the indices needed
コード例 #2
0
                Temp = (temp[ind,a,b]-temp[ind-1,a,b])/(lyrDepth[ind]-lyrDepth[ind-1]) * \
                    (depth-lyrDepth[ind-1]) + temp[ind-1,a,b]
            t.append(Temp)
        modTemp.append(t)
    modTemp = np.array(modTemp)
    return modTemp
FONTSIZE = 25
obsData = pd.read_csv('ctd_good.csv')
tf_index = np.where(obsData['TF'].notnull())[0]
obsLon, obsLat = obsData['LON'][tf_index], obsData['LAT'][tf_index]
obsTime = pd.Series(np_datetime(obsData['END_DATE'][tf_index]), index=tf_index)
obsTemp = pd.Series(str2ndlist(obsData['TEMP_VALS'][tf_index]), index=tf_index)
# obsTemp = pd.Series(bottom_value(obs['TEMP_VALS'][tf_index]), index=tf_index)
obsDepth = pd.Series(str2ndlist(obsData['TEMP_DBAR'][tf_index]), index=tf_index)
modLayer = pd.Series(str2ndlist(obsData['modDepthLayer'][tf_index],bracket=True), index=tf_index)
modNearestIndex = pd.Series(str2ndlist(obsData['modNearestIndex'][tf_index], bracket=True), index=tf_index)

starttime = datetime(2009, 8, 24)
endtime = datetime(2013, 12, 13)
tempObj = wtm.waterCTD()
url = tempObj.get_url(starttime, endtime)
# modTemp1 = tempObj.watertemp(obsLon.values, obsLat.values, obsDepth.values, obsTime.values, url)
modDataAll = tempObj.get_data(url)
oceantime = modDataAll['ocean_time']
modTempAll = modDataAll['temp']
s_rho = modDataAll['s_rho']
waterDepth = modDataAll['h']
modTemp = getModTemp(modTempAll, obsTime, modLayer, modNearestIndex, s_rho, waterDepth, starttime, oceantime)
obsData['modTempByDepth'] = pd.Series(modTemp, index = tf_index)
obsData.to_csv('ctdWithModTempByDepth.csv')
コード例 #3
0
ファイル: timeSeries.py プロジェクト: jian-cui/turtle
obsData = obsData.ix[tf_index]
id = obsData['PTT'].drop_duplicates().values
print 'turtle id:', id
tID = id[6]                    # 0~4, 6,7,8,9, turtle ID.
layers = pd.Series(str2ndlist(obsData['modDepthLayer'], bracket=True), index=obsData.index) # If str has '[' and ']', bracket should be True.
modNearestIndex = pd.Series(str2ndlist(obsData['modNearestIndex'].values, bracket=True), index=obsData.index)
obsTemp = pd.Series(str2ndlist(obsData['TEMP_VALS'].values), index=obsData.index)
obsTime = pd.Series(np_datetime(obsData['END_DATE'].values), index=obsData.index)

layers = layers[obsData['PTT']==tID]
modNearestIndex = modNearestIndex[obsData['PTT']==tID]
time = obsTime[obsData['PTT']==tID]
temp = obsTemp[obsData['PTT']==tID]

starttime, endtime=np.amin(time), np.amax(time)+timedelta(hours=1)
modObj = wtm.waterCTD()
url = modObj.get_url(starttime, endtime)
oceantime = netCDF4.Dataset(url).variables['ocean_time']
modTempAll = netCDF4.Dataset(url).variables['temp']
modTemp = getModTemp(modTempAll, obsTime, layers, modNearestIndex, starttime, oceantime)
modTemp = pd.Series(modTemp, index=temp.index)

obsMaxTemp, obsMinTemp = [], []
modMaxTemp, modMinTemp = [], []
for i in temp.index:  #this loop calculate min & max temperature of each dive
    obsMaxTemp.append(max(temp[i]))
    obsMinTemp.append(min(temp[i]))
    modMaxTemp.append(max(modTemp[i]))
    modMinTemp.append(min(modTemp[i]))
data = pd.DataFrame({'time':time.values, 'obsMaxTemp':obsMaxTemp, 'obsMinTemp':obsMinTemp,
                    'modMaxTemp': modMaxTemp, 'modMinTemp': modMinTemp}, index=range(len(time)))