In [1]:
%matplotlib inline
from IPython.lib.pretty import pprint
import logging
logger = logging.getLogger('gutils')
logger.handlers = [logging.StreamHandler()]
logger.setLevel(logging.DEBUG)
def plot_profiles(default_df, z=None, t=None):
import matplotlib.dates as mpd
import matplotlib.pyplot as plt
t = t or 't'
z = z or 'z'
df = default_df.copy()
df[z] = df[z].values * -1
df[t] = mpd.date2num(df[t].dt.to_pydatetime())
df.plot.scatter(x=t, y=z, c='profile', cmap='inferno', figsize=(18,10,))
plt.show()
In [2]:
from pathlib import Path
from gutils.slocum import SlocumReader
from pocean.dsg import ContiguousRaggedTrajectoryProfile as crtp
data_folder = Path('.').absolute().parent.parent / 'gutils' / 'tests' / 'resources' / 'slocum'
nc_file = data_folder / 'full_deployment.nc'
df = None
axes = {
't': 'time',
'x': 'lon',
'y': 'lat',
'z': 'depth'
}
with crtp(nc_file) as ncd:
df = ncd.to_dataframe(axes=axes)
In [3]:
df
Out[3]:
time
lon
lat
depth
trajectory
profile
trajectory_id
trajectoryIndex
rowSize
profile_time
...
density
lat_uv
lon_uv
m_altitude
pressure
salinity
temperature
time_uv
u
v
0
2017-09-05 18:24:16.707060
-75.387364
35.852015
0.276583
1504635856
ramses-20170905T1728
0
10
8.734839e+08
...
NaN
NaN
NaN
NaN
0.278615
NaN
NaN
NaN
NaN
NaN
1
2017-09-05 18:24:16.707060
-75.387364
35.852015
0.513476
1504635856
ramses-20170905T1728
0
10
8.734839e+08
...
NaN
NaN
NaN
NaN
0.517247
NaN
NaN
NaN
NaN
NaN
2
2017-09-05 18:24:16.707060
-75.387364
35.852015
0.910975
1504635856
ramses-20170905T1728
0
10
8.734839e+08
...
NaN
NaN
NaN
NaN
0.917665
NaN
NaN
NaN
NaN
NaN
3
2017-09-05 18:24:16.707060
-75.387364
35.852015
1.565440
1504635856
ramses-20170905T1728
0
10
8.734839e+08
...
NaN
NaN
NaN
NaN
1.576934
NaN
NaN
NaN
NaN
NaN
4
2017-09-05 18:24:16.707060
-75.387364
35.852015
2.135590
1504635856
ramses-20170905T1728
0
10
8.734839e+08
...
NaN
NaN
NaN
NaN
2.151267
NaN
NaN
NaN
NaN
NaN
5
2017-09-05 18:24:16.707060
-75.387364
35.852015
3.103240
1504635856
ramses-20170905T1728
0
10
8.734839e+08
...
NaN
NaN
NaN
NaN
3.126013
NaN
NaN
NaN
NaN
NaN
6
2017-09-05 18:24:16.707060
-75.387364
35.852015
3.741650
1504635856
ramses-20170905T1728
0
10
8.734839e+08
...
NaN
NaN
NaN
NaN
3.769102
NaN
NaN
NaN
NaN
NaN
7
2017-09-05 18:24:16.707060
-75.387364
35.852015
4.335890
1504635856
ramses-20170905T1728
0
10
8.734839e+08
...
NaN
NaN
NaN
NaN
4.367696
NaN
NaN
NaN
NaN
NaN
8
2017-09-05 18:24:16.707060
-75.387364
35.852015
4.845810
1504635856
ramses-20170905T1728
0
10
8.734839e+08
...
NaN
NaN
NaN
NaN
4.881350
NaN
NaN
NaN
NaN
NaN
9
2017-09-05 18:24:16.707060
-75.387364
35.852015
5.086720
1504635856
ramses-20170905T1728
0
10
8.734839e+08
...
NaN
NaN
NaN
NaN
5.124024
NaN
NaN
NaN
NaN
NaN
10
2017-09-05 18:24:21.596470
-75.387252
35.852339
5.532400
1504635907
ramses-20170905T1728
0
19
8.734839e+08
...
NaN
NaN
NaN
NaN
5.572967
NaN
NaN
NaN
NaN
NaN
11
2017-09-05 18:24:21.596470
-75.387252
35.852339
5.516340
1504635907
ramses-20170905T1728
0
19
8.734839e+08
...
NaN
NaN
NaN
NaN
5.556789
NaN
NaN
NaN
NaN
NaN
12
2017-09-05 18:24:21.596470
-75.387252
35.852339
5.428010
1504635907
ramses-20170905T1728
0
19
8.734839e+08
...
NaN
NaN
NaN
NaN
5.467813
NaN
NaN
NaN
NaN
NaN
13
2017-09-05 18:24:21.596470
-75.387252
35.852339
5.351720
1504635907
ramses-20170905T1728
0
19
8.734839e+08
...
NaN
NaN
NaN
NaN
5.390964
NaN
NaN
NaN
NaN
NaN
14
2017-09-05 18:24:21.596470
-75.387252
35.852339
5.303540
1504635907
ramses-20170905T1728
0
19
8.734839e+08
...
NaN
NaN
NaN
22.1429
5.342431
NaN
NaN
NaN
NaN
NaN
15
2017-09-05 18:24:21.596470
-75.387252
35.852339
5.179070
1504635907
ramses-20170905T1728
0
19
8.734839e+08
...
NaN
NaN
NaN
NaN
5.217050
NaN
NaN
NaN
NaN
NaN
16
2017-09-05 18:24:21.596470
-75.387252
35.852339
5.078690
1504635907
ramses-20170905T1728
0
19
8.734839e+08
...
NaN
NaN
NaN
NaN
5.115935
NaN
NaN
NaN
NaN
NaN
17
2017-09-05 18:24:21.596470
-75.387252
35.852339
5.002400
1504635907
ramses-20170905T1728
0
19
8.734839e+08
...
NaN
NaN
NaN
NaN
5.039087
NaN
NaN
NaN
NaN
NaN
18
2017-09-05 18:24:21.596470
-75.387252
35.852339
4.922100
1504635907
ramses-20170905T1728
0
19
8.734839e+08
...
NaN
NaN
NaN
NaN
4.958199
NaN
NaN
NaN
NaN
NaN
19
2017-09-05 18:24:21.596470
-75.387252
35.852339
4.889980
1504635907
ramses-20170905T1728
0
19
8.734839e+08
...
NaN
NaN
NaN
NaN
4.925844
NaN
NaN
NaN
NaN
NaN
20
2017-09-05 18:24:21.596470
-75.387252
35.852339
4.877930
1504635907
ramses-20170905T1728
0
19
8.734839e+08
...
NaN
NaN
NaN
NaN
4.913706
NaN
NaN
NaN
NaN
NaN
21
2017-09-05 18:24:21.596470
-75.387252
35.852339
4.785580
1504635907
ramses-20170905T1728
0
19
8.734839e+08
...
NaN
NaN
NaN
NaN
4.820679
NaN
NaN
NaN
NaN
NaN
22
2017-09-05 18:24:21.596470
-75.387252
35.852339
4.737400
1504635907
ramses-20170905T1728
0
19
8.734839e+08
...
NaN
NaN
NaN
NaN
4.772147
NaN
NaN
NaN
NaN
NaN
23
2017-09-05 18:24:21.596470
-75.387252
35.852339
4.645050
1504635907
ramses-20170905T1728
0
19
8.734839e+08
...
NaN
NaN
NaN
NaN
4.679120
NaN
NaN
NaN
NaN
NaN
24
2017-09-05 18:24:21.596470
-75.387252
35.852339
4.512550
1504635907
ramses-20170905T1728
0
19
8.734839e+08
...
NaN
NaN
NaN
NaN
4.545650
NaN
NaN
NaN
NaN
NaN
25
2017-09-05 18:24:21.596470
-75.387252
35.852339
4.460360
1504635907
ramses-20170905T1728
0
19
8.734839e+08
...
NaN
NaN
NaN
NaN
4.493078
NaN
NaN
NaN
NaN
NaN
26
2017-09-05 18:24:21.596470
-75.387252
35.852339
4.416190
1504635907
ramses-20170905T1728
0
19
8.734839e+08
...
NaN
NaN
NaN
NaN
4.448584
NaN
NaN
NaN
NaN
NaN
27
2017-09-05 18:24:21.596470
-75.387252
35.852339
4.227480
1504635907
ramses-20170905T1728
0
19
8.734839e+08
...
NaN
NaN
NaN
NaN
4.258492
NaN
NaN
NaN
NaN
NaN
28
2017-09-05 18:24:21.596470
-75.387252
35.852339
4.179300
1504635907
ramses-20170905T1728
0
19
8.734839e+08
...
NaN
NaN
NaN
NaN
4.209959
NaN
NaN
NaN
NaN
NaN
29
2017-09-05 18:24:26.251830
-75.387141
35.852664
3.725590
1504636018
ramses-20170905T1728
0
21
8.734841e+08
...
NaN
NaN
NaN
NaN
3.752925
NaN
NaN
NaN
NaN
NaN
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
48343
2017-09-05 22:24:10.988920
-75.391490
35.892790
5.896489
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.629817
NaN
NaN
NaN
5.940000
31.561933
25.4796
NaN
NaN
NaN
48344
2017-09-05 22:24:10.988920
-75.391490
35.892790
5.707884
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.609353
NaN
NaN
NaN
5.750000
31.532968
25.4724
NaN
NaN
NaN
48345
2017-09-05 22:24:10.988920
-75.391490
35.892790
5.529205
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.599989
NaN
NaN
NaN
5.570000
31.520569
25.4699
NaN
NaN
NaN
48346
2017-09-05 22:24:10.988920
-75.391490
35.892790
5.360452
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.589420
NaN
NaN
NaN
5.400000
31.507602
25.4701
NaN
NaN
NaN
48347
2017-09-05 22:24:10.988920
-75.391490
35.892790
5.201626
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.585545
NaN
NaN
NaN
5.240000
31.504953
25.4740
NaN
NaN
NaN
48348
2017-09-05 22:24:10.988920
-75.391490
35.892790
5.052726
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.581253
NaN
NaN
NaN
5.090000
31.499837
25.4733
NaN
NaN
NaN
48349
2017-09-05 22:24:10.988920
-75.391490
35.892790
4.883973
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.582133
NaN
NaN
NaN
4.920000
31.502062
25.4735
NaN
NaN
NaN
48350
2017-09-05 22:24:10.988920
-75.391490
35.892790
4.705293
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.575950
NaN
NaN
NaN
4.740000
31.494329
25.4721
NaN
NaN
NaN
48351
2017-09-05 22:24:10.988920
-75.391490
35.892790
4.516686
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.573121
NaN
NaN
NaN
4.550000
31.491868
25.4726
NaN
NaN
NaN
48352
2017-09-05 22:24:10.988920
-75.391490
35.892790
4.328080
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.570221
NaN
NaN
NaN
4.360000
31.488628
25.4714
NaN
NaN
NaN
48353
2017-09-05 22:24:10.988920
-75.391490
35.892790
4.129546
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.563838
NaN
NaN
NaN
4.160000
31.479655
25.4673
NaN
NaN
NaN
48354
2017-09-05 22:24:10.988920
-75.391490
35.892790
3.940939
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.559024
NaN
NaN
NaN
3.970000
31.474198
25.4669
NaN
NaN
NaN
48355
2017-09-05 22:24:10.988920
-75.391490
35.892790
3.742404
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.558933
NaN
NaN
NaN
3.770000
31.473776
25.4633
NaN
NaN
NaN
48356
2017-09-05 22:24:10.988920
-75.391490
35.892790
3.524017
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.551810
NaN
NaN
NaN
3.550000
31.465750
25.4637
NaN
NaN
NaN
48357
2017-09-05 22:24:10.988920
-75.391490
35.892790
3.305629
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.548534
NaN
NaN
NaN
3.330000
31.462627
25.4636
NaN
NaN
NaN
48358
2017-09-05 22:24:10.988920
-75.391490
35.892790
3.107094
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.543973
NaN
NaN
NaN
3.130000
31.457927
25.4641
NaN
NaN
NaN
48359
2017-09-05 22:24:10.988920
-75.391490
35.892790
2.918486
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.542536
NaN
NaN
NaN
2.940000
31.457192
25.4643
NaN
NaN
NaN
48360
2017-09-05 22:24:10.988920
-75.391490
35.892790
2.729877
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.539423
NaN
NaN
NaN
2.750000
31.453267
25.4621
NaN
NaN
NaN
48361
2017-09-05 22:24:10.988920
-75.391490
35.892790
2.531342
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.537043
NaN
NaN
NaN
2.550000
31.451460
25.4626
NaN
NaN
NaN
48362
2017-09-05 22:24:10.988920
-75.391490
35.892790
2.332807
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.534639
NaN
NaN
NaN
2.350000
31.449420
25.4626
NaN
NaN
NaN
48363
2017-09-05 22:24:10.988920
-75.391490
35.892790
2.144198
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.535168
NaN
NaN
NaN
2.160000
31.451052
25.4622
NaN
NaN
NaN
48364
2017-09-05 22:24:10.988920
-75.391490
35.892790
1.935735
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.533679
NaN
NaN
NaN
1.950000
31.450162
25.4619
NaN
NaN
NaN
48365
2017-09-05 22:24:10.988920
-75.391490
35.892790
1.747126
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.531857
NaN
NaN
NaN
1.760000
31.449079
25.4625
NaN
NaN
NaN
48366
2017-09-05 22:24:10.988920
-75.391490
35.892790
1.578370
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.529366
NaN
NaN
NaN
1.590000
31.446267
25.4613
NaN
NaN
NaN
48367
2017-09-05 22:24:10.988920
-75.391490
35.892790
1.429468
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.526925
NaN
NaN
NaN
1.440000
31.443689
25.4608
NaN
NaN
NaN
48368
2017-09-05 22:24:10.988920
-75.391490
35.892790
1.300419
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.525789
NaN
NaN
NaN
1.310000
31.443009
25.4610
NaN
NaN
NaN
48369
2017-09-05 22:24:10.988920
-75.391490
35.892790
1.191224
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.524354
NaN
NaN
NaN
1.200000
31.441818
25.4612
NaN
NaN
NaN
48370
2017-09-05 22:24:10.988920
-75.391490
35.892790
1.111809
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.524711
NaN
NaN
NaN
1.120000
31.442389
25.4603
NaN
NaN
NaN
48371
2017-09-05 22:24:10.988920
-75.391490
35.892790
1.022467
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.524670
NaN
NaN
NaN
1.030000
31.442691
25.4599
NaN
NaN
NaN
48372
2017-09-05 22:24:10.988920
-75.391490
35.892790
0.943053
1504805687
ramses-20170905T1728
0
129
8.736538e+08
...
1020.525436
NaN
NaN
NaN
0.950000
31.443844
25.4591
NaN
NaN
NaN
48373 rows × 24 columns
In [4]:
from gutils.yo import assign_profiles
df2 = df.copy()
df2 = df2.rename(columns={'time': 't', 'lon': 'x', 'lat': 'y', 'depth': 'z'})
df2 = assign_profiles(df2)
plot_profiles(df2)
In [5]:
import matplotlib.dates as mpd
import matplotlib.pyplot as plt
df3 = df2.copy()
df3['z'] = df3.z.values * -1
df3['t'] = mpd.date2num(df3.t.dt.to_pydatetime())
df3.plot.scatter(x='t', y='z', c='temperature', cmap='viridis', title='Temperature', figsize=(18,10))
df3.plot.scatter(x='t', y='z', c='salinity', cmap='plasma', title='Salinity', figsize=(18,10))
plt.show()
Content source: SECOORA/GUTILS
Similar notebooks: