For this examples it is requires to have downloaded the full version of the Argo Global Data Assembly Centre (Argo GDAC) snapshot from september 2025 DOI 10.17882/42182
Conveniently, all the core mission profiles are compacted in a single file, named: <FloatWmoID>_prof.nc. However, some information is only in the individual profile files, but we will see it.
and let’s plot the time evolution of the saliniy measured by this float. in oceanography we usually call it a section
fig,ax=plt.subplots(figsize=(15,10))#Draw the contours for the salinitycs=ax.contourf(juld,prei,psali.transpose(),levels=np.arange(37.5,39.9,0.05),cmap="RdBu_r")#Draw the contours lines to be labelledcs2=ax.contour(juld,prei,psali.transpose(),colors=('k'),levels=cs.levels[::4])#Since pressure increase away from the surface we invert the y-axisax.invert_yaxis()ax.clabel(cs2,fmt='%2.1f',colors='w',fontsize=10)#Add the titlesax.set_title(f"Vertical Salinity section for float {prof.PLATFORM_NUMBER[0].astype(str).values}")ax.set_xlabel(f"{prof.JULD.standard_name}")ax.set_ylabel(f"{prof.PRES.long_name}")#Add the colorbarcbar=fig.colorbar(cs,ax=ax)
And the same for temperature:
fig,ax=plt.subplots(figsize=(15,10))cs=ax.contourf(juld,prei,tempi.transpose(),40,cmap="RdBu_r")cs2=ax.contour(juld,prei,tempi.transpose(),colors=('k'),levels=cs.levels[::4])ax.invert_yaxis()ax.clabel(cs2,fmt='%2.1f',colors='w',fontsize=10)ax.set_title(f"Vertical Temperature section for float {prof.PLATFORM_NUMBER[0].astype(str).values}")ax.set_xlabel(f"{prof.JULD.standard_name}")ax.set_ylabel(f"{prof.PRES.long_name}")cbar=fig.colorbar(cs,ax=ax)
In oceanography, temperature-salinity diagrams, sometimes called T-S diagrams, are used to identify water masses. In a T-S diagram, rather than plotting plotting temperatute and salinity as a separate “profile,” with pressure or depth as the vertical coordinate, potential temperature (on the vertical axis) is plotted versus salinity (on the horizontal axis).
This diagrams area very useful since as long as it remains isolated from the surface, where heat or fresh water can be gained or lost, and in the absence of mixing with other water masses, a water parcel’s potential temperature and salinity are conserved. Deep water masses thus retain their T-S characteristics for long periods of time, and can be identified readily on a T-S plot.
In this case we add a colobar bar to show the pressure of each data point.
importseawaterassw
/var/folders/tj/cj2twzcd30jbzn574lsp6phw0000gn/T/ipykernel_2165/1793873256.py:1: UserWarning: The seawater library is deprecated! Please use gsw instead.
import seawater as sw
fig,ax=plt.subplots(figsize=(10,10))sc=ax.scatter(psal,ptmp,c=pres,alpha=0.5,cmap="RdBu_r",vmin=0,vmax=1000)ax.plot(psal[0,:],ptmp[0,:],'k')ax.plot(psal[-1,:],ptmp[-1,:],'r')ax.set_title(f"T/S diagram for float {prof.PLATFORM_NUMBER[0].astype(str).values}")ax.set_ylabel("potential temperature [C]")ax.set_xlabel(f"{prof.PSAL.long_name}")cbar=fig.colorbar(sc,extend='both');cbar.set_label('Pressure [dbar]')
importcartopy.crsasccrsimportcartopy
lon=Rtraj.LONGITUDE[~np.isnan(Rtraj.LONGITUDE)&~np.isnan(Rtraj.LATITUDE)]lat=Rtraj.LATITUDE[~np.isnan(Rtraj.LONGITUDE)&~np.isnan(Rtraj.LATITUDE)]fig,ax=plt.subplots(figsize=(10,10),subplot_kw={'projection':ccrs.PlateCarree()})ax.plot(lon,lat,'-b.',label='Float surfacing')ax.plot(lon[0],lat[0],'ok',markersize=12,label='Deployment')ax.plot(lon[-1],lat[-1],'sk',markersize=12,label='Last surfacing')ax.add_feature(cartopy.feature.LAND.with_scale('10m'))ax.add_feature(cartopy.feature.COASTLINE.with_scale('10m'),edgecolor='black')ax.set_title(f"Data from {Rtraj.PLATFORM_NUMBER.values.astype(str)}")ax.legend()ax.gridlines(draw_labels=True);
Semi-major axis of error ellipse from positioning system
units :
meters
[16885 values with dtype=float32]
AXES_ERROR_ELLIPSE_MINOR
(N_MEASUREMENT)
float32
...
long_name :
Semi-minor axis of error ellipse from positioning system
units :
meters
[16885 values with dtype=float32]
AXES_ERROR_ELLIPSE_ANGLE
(N_MEASUREMENT)
float32
...
long_name :
Angle of error ellipse from positioning system
units :
Degrees (from North when heading East)
[16885 values with dtype=float32]
SATELLITE_NAME
(N_MEASUREMENT)
object
...
long_name :
Satellite name from positioning system
[16885 values with dtype=object]
CYCLE_NUMBER
(N_MEASUREMENT)
float64
...
long_name :
Float cycle number of the measurement
conventions :
0...N, 0 : launch cycle, 1 : first complete cycle
[16885 values with dtype=float64]
CYCLE_NUMBER_ADJUSTED
(N_MEASUREMENT)
float64
...
long_name :
Adjusted float cycle number of the measurement
conventions :
0...N, 0 : launch cycle, 1 : first complete cycle
[16885 values with dtype=float64]
MEASUREMENT_CODE
(N_MEASUREMENT)
float64
...
long_name :
Flag referring to a measurement event in the cycle
conventions :
Argo reference table 15
[16885 values with dtype=float64]
TRAJECTORY_PARAMETER_DATA_MODE
(N_MEASUREMENT, N_PARAM)
object
...
long_name :
Delayed mode or real time data
conventions :
R : real time; D : delayed mode; A : real time with adjustment
[50655 values with dtype=object]
PRES
(N_MEASUREMENT)
float32
...
long_name :
Sea water pressure, equals 0 at sea-level
standard_name :
sea_water_pressure
units :
decibar
valid_min :
0.0
valid_max :
12000.0
C_format :
%.3f
FORTRAN_format :
F.3
resolution :
0.1
comment_on_resolution :
PRES resolution is 0.1 dbar, except for measurement codes [150 189 198 289 297 298 389 398 489 497 498 589 901] for which PRES resolution is 1 dbar
axis :
Z
[16885 values with dtype=float32]
PRES_QC
(N_MEASUREMENT)
object
...
long_name :
quality flag
conventions :
Argo reference table 2
[16885 values with dtype=object]
PRES_ADJUSTED
(N_MEASUREMENT)
float32
...
long_name :
Sea water pressure, equals 0 at sea-level
standard_name :
sea_water_pressure
units :
decibar
valid_min :
0.0
valid_max :
12000.0
C_format :
%.3f
FORTRAN_format :
F.3
resolution :
0.1
comment_on_resolution :
PRES_ADJUSTED resolution is 0.1 dbar, except for measurement codes [150 189 198 289 297 298 389 398 489 497 498 589 901] for which PRES_ADJUSTED resolution is 1 dbar
axis :
Z
[16885 values with dtype=float32]
PRES_ADJUSTED_QC
(N_MEASUREMENT)
object
...
long_name :
quality flag
conventions :
Argo reference table 2
[16885 values with dtype=object]
PRES_ADJUSTED_ERROR
(N_MEASUREMENT)
float32
...
long_name :
Contains the error on the adjusted values as determined by the delayed mode QC process
units :
decibar
C_format :
%.3f
FORTRAN_format :
F.3
resolution :
0.1
[16885 values with dtype=float32]
TEMP
(N_MEASUREMENT)
float32
...
long_name :
Sea temperature in-situ ITS-90 scale
standard_name :
sea_water_temperature
units :
degree_Celsius
valid_min :
-2.5
valid_max :
40.0
C_format :
%.3f
FORTRAN_format :
F.3
resolution :
0.001
[16885 values with dtype=float32]
TEMP_QC
(N_MEASUREMENT)
object
...
long_name :
quality flag
conventions :
Argo reference table 2
[16885 values with dtype=object]
TEMP_ADJUSTED
(N_MEASUREMENT)
float32
...
long_name :
Sea temperature in-situ ITS-90 scale
standard_name :
sea_water_temperature
units :
degree_Celsius
valid_min :
-2.5
valid_max :
40.0
C_format :
%.3f
FORTRAN_format :
F.3
resolution :
0.001
[16885 values with dtype=float32]
TEMP_ADJUSTED_QC
(N_MEASUREMENT)
object
...
long_name :
quality flag
conventions :
Argo reference table 2
[16885 values with dtype=object]
TEMP_ADJUSTED_ERROR
(N_MEASUREMENT)
float32
...
long_name :
Contains the error on the adjusted values as determined by the delayed mode QC process
units :
degree_Celsius
C_format :
%.3f
FORTRAN_format :
F.3
resolution :
0.001
[16885 values with dtype=float32]
PSAL
(N_MEASUREMENT)
float32
...
long_name :
Practical salinity
standard_name :
sea_water_salinity
units :
psu
valid_min :
2.0
valid_max :
41.0
C_format :
%.4f
FORTRAN_format :
F.4
resolution :
1e-04
[16885 values with dtype=float32]
PSAL_QC
(N_MEASUREMENT)
object
...
long_name :
quality flag
conventions :
Argo reference table 2
[16885 values with dtype=object]
PSAL_ADJUSTED
(N_MEASUREMENT)
float32
...
long_name :
Practical salinity
standard_name :
sea_water_salinity
units :
psu
valid_min :
2.0
valid_max :
41.0
C_format :
%.4f
FORTRAN_format :
F.4
resolution :
1e-04
[16885 values with dtype=float32]
PSAL_ADJUSTED_QC
(N_MEASUREMENT)
object
...
long_name :
quality flag
conventions :
Argo reference table 2
[16885 values with dtype=object]
PSAL_ADJUSTED_ERROR
(N_MEASUREMENT)
float32
...
long_name :
Contains the error on the adjusted values as determined by the delayed mode QC process
units :
psu
C_format :
%.4f
FORTRAN_format :
F.4
resolution :
1e-04
[16885 values with dtype=float32]
JULD_DESCENT_START
(N_CYCLE)
datetime64[ns]
...
long_name :
Descent start date of the cycle
standard_name :
time
conventions :
Relative julian days with decimal part (as parts of day)
resolution :
0.0006944444444444445
[291 values with dtype=datetime64[ns]]
JULD_DESCENT_START_STATUS
(N_CYCLE)
object
...
long_name :
Status of descent start date of the cycle
conventions :
Argo reference table 19
[291 values with dtype=object]
JULD_FIRST_STABILIZATION
(N_CYCLE)
datetime64[ns]
...
long_name :
Time when a float first becomes water-neutral
standard_name :
time
conventions :
Relative julian days with decimal part (as parts of day)
resolution :
0.0006944444444444445
[291 values with dtype=datetime64[ns]]
JULD_FIRST_STABILIZATION_STATUS
(N_CYCLE)
object
...
long_name :
Status of time when a float first becomes water-neutral
conventions :
Argo reference table 19
[291 values with dtype=object]
JULD_DESCENT_END
(N_CYCLE)
datetime64[ns]
...
long_name :
Descent end date of the cycle
standard_name :
time
conventions :
Relative julian days with decimal part (as parts of day)
resolution :
0.0006944444444444445
[291 values with dtype=datetime64[ns]]
JULD_DESCENT_END_STATUS
(N_CYCLE)
object
...
long_name :
Status of descent end date of the cycle
conventions :
Argo reference table 19
[291 values with dtype=object]
JULD_PARK_START
(N_CYCLE)
datetime64[ns]
...
long_name :
Drift start date of the cycle
standard_name :
time
conventions :
Relative julian days with decimal part (as parts of day)
resolution :
0.0006944444444444445
[291 values with dtype=datetime64[ns]]
JULD_PARK_START_STATUS
(N_CYCLE)
object
...
long_name :
Status of drift start date of the cycle
conventions :
Argo reference table 19
[291 values with dtype=object]
JULD_PARK_END
(N_CYCLE)
datetime64[ns]
...
long_name :
Drift end date of the cycle
standard_name :
time
conventions :
Relative julian days with decimal part (as parts of day)
resolution :
0.0006944444444444445
[291 values with dtype=datetime64[ns]]
JULD_PARK_END_STATUS
(N_CYCLE)
object
...
long_name :
Status of drift end date of the cycle
conventions :
Argo reference table 19
[291 values with dtype=object]
JULD_DEEP_DESCENT_END
(N_CYCLE)
datetime64[ns]
...
long_name :
Deep descent end date of the cycle
standard_name :
time
conventions :
Relative julian days with decimal part (as parts of day)
resolution :
0.0006944444444444445
[291 values with dtype=datetime64[ns]]
JULD_DEEP_DESCENT_END_STATUS
(N_CYCLE)
object
...
long_name :
Status of deep descent end date of the cycle
conventions :
Argo reference table 19
[291 values with dtype=object]
JULD_DEEP_PARK_START
(N_CYCLE)
datetime64[ns]
...
long_name :
Deep park start date of the cycle
standard_name :
time
conventions :
Relative julian days with decimal part (as parts of day)
resolution :
0.0006944444444444445
[291 values with dtype=datetime64[ns]]
JULD_DEEP_PARK_START_STATUS
(N_CYCLE)
object
...
long_name :
Status of deep park start date of the cycle
conventions :
Argo reference table 19
[291 values with dtype=object]
JULD_ASCENT_START
(N_CYCLE)
datetime64[ns]
...
long_name :
Start date of the ascent to the surface
standard_name :
time
conventions :
Relative julian days with decimal part (as parts of day)
resolution :
0.0006944444444444445
[291 values with dtype=datetime64[ns]]
JULD_ASCENT_START_STATUS
(N_CYCLE)
object
...
long_name :
Status of start date of the ascent to the surface
conventions :
Argo reference table 19
[291 values with dtype=object]
JULD_DEEP_ASCENT_START
(N_CYCLE)
datetime64[ns]
...
long_name :
Deep ascent start date of the cycle
standard_name :
time
conventions :
Relative julian days with decimal part (as parts of day)
resolution :
0.0006944444444444445
[291 values with dtype=datetime64[ns]]
JULD_DEEP_ASCENT_START_STATUS
(N_CYCLE)
object
...
long_name :
Status of deep ascent start date of the cycle
conventions :
Argo reference table 19
[291 values with dtype=object]
JULD_ASCENT_END
(N_CYCLE)
datetime64[ns]
...
long_name :
End date of ascent to the surface
standard_name :
time
conventions :
Relative julian days with decimal part (as parts of day)
resolution :
0.0006944444444444445
[291 values with dtype=datetime64[ns]]
JULD_ASCENT_END_STATUS
(N_CYCLE)
object
...
long_name :
Status of end date of ascent to the surface
conventions :
Argo reference table 19
[291 values with dtype=object]
JULD_TRANSMISSION_START
(N_CYCLE)
datetime64[ns]
...
long_name :
Start date of transmission
standard_name :
time
conventions :
Relative julian days with decimal part (as parts of day)
resolution :
0.0006944444444444445
[291 values with dtype=datetime64[ns]]
JULD_TRANSMISSION_START_STATUS
(N_CYCLE)
object
...
long_name :
Status of start date of transmission
conventions :
Argo reference table 19
[291 values with dtype=object]
JULD_FIRST_MESSAGE
(N_CYCLE)
datetime64[ns]
...
long_name :
Date of earliest float message received
standard_name :
time
conventions :
Relative julian days with decimal part (as parts of day)
resolution :
1.1574074074074073e-05
[291 values with dtype=datetime64[ns]]
JULD_FIRST_MESSAGE_STATUS
(N_CYCLE)
object
...
long_name :
Status of date of earliest float message received
conventions :
Argo reference table 19
[291 values with dtype=object]
JULD_FIRST_LOCATION
(N_CYCLE)
datetime64[ns]
...
long_name :
Date of earliest location
standard_name :
time
conventions :
Relative julian days with decimal part (as parts of day)
resolution :
1.1574074074074073e-05
[291 values with dtype=datetime64[ns]]
JULD_FIRST_LOCATION_STATUS
(N_CYCLE)
object
...
long_name :
Status of date of earliest location
conventions :
Argo reference table 19
[291 values with dtype=object]
JULD_LAST_LOCATION
(N_CYCLE)
datetime64[ns]
...
long_name :
Date of latest location
standard_name :
time
conventions :
Relative julian days with decimal part (as parts of day)
resolution :
1.1574074074074073e-05
[291 values with dtype=datetime64[ns]]
JULD_LAST_LOCATION_STATUS
(N_CYCLE)
object
...
long_name :
Status of date of latest location
conventions :
Argo reference table 19
[291 values with dtype=object]
JULD_LAST_MESSAGE
(N_CYCLE)
datetime64[ns]
...
long_name :
Date of latest float message received
standard_name :
time
conventions :
Relative julian days with decimal part (as parts of day)
resolution :
1.1574074074074073e-05
[291 values with dtype=datetime64[ns]]
JULD_LAST_MESSAGE_STATUS
(N_CYCLE)
object
...
long_name :
Status of date of latest float message received
conventions :
Argo reference table 19
[291 values with dtype=object]
JULD_TRANSMISSION_END
(N_CYCLE)
datetime64[ns]
...
long_name :
Transmission end date
standard_name :
time
conventions :
Relative julian days with decimal part (as parts of day)
resolution :
0.0006944444444444445
[291 values with dtype=datetime64[ns]]
JULD_TRANSMISSION_END_STATUS
(N_CYCLE)
object
...
long_name :
Status of transmission end date
conventions :
Argo reference table 19
[291 values with dtype=object]
CLOCK_OFFSET
(N_CYCLE)
float64
...
long_name :
Time of float clock drift
units :
days
conventions :
Days with decimal part (as parts of day)
[291 values with dtype=float64]
GROUNDED
(N_CYCLE)
object
...
long_name :
Did the profiler touch the ground for that cycle?
conventions :
Argo reference table 20
[291 values with dtype=object]
REPRESENTATIVE_PARK_PRESSURE
(N_CYCLE)
float32
...
long_name :
Best pressure value during park phase
units :
decibar
[291 values with dtype=float32]
REPRESENTATIVE_PARK_PRESSURE_STATUS
(N_CYCLE)
object
...
long_name :
Status of best pressure value during park phase
conventions :
Argo reference table 21
[291 values with dtype=object]
CONFIG_MISSION_NUMBER
(N_CYCLE)
float64
...
long_name :
Unique number denoting the missions performed by the float
conventions :
1...N, 1 : first complete mission
[291 values with dtype=float64]
CYCLE_NUMBER_INDEX
(N_CYCLE)
float64
...
long_name :
Cycle number that corresponds to the current index
conventions :
0...N, 0 : launch cycle, 1 : first complete cycle
[291 values with dtype=float64]
CYCLE_NUMBER_INDEX_ADJUSTED
(N_CYCLE)
float64
...
long_name :
Adjusted cycle number that corresponds to the current index
conventions :
0...N, 0 : launch cycle, 1 : first complete cycle
[291 values with dtype=float64]
DATA_MODE
(N_CYCLE)
object
...
long_name :
Delayed mode or real time data
conventions :
R : real time; D : delayed mode; A : real time with adjustment
[291 values with dtype=object]
SCIENTIFIC_CALIB_PARAMETER
(N_CALIB_PARAM, N_PARAM)
object
...
long_name :
List of parameters with calibration information
conventions :
Argo reference table 3
[3 values with dtype=object]
SCIENTIFIC_CALIB_EQUATION
(N_CALIB_PARAM, N_PARAM)
object
...
long_name :
Calibration equation for this parameter
[3 values with dtype=object]
SCIENTIFIC_CALIB_COEFFICIENT
(N_CALIB_PARAM, N_PARAM)
object
...
long_name :
Calibration coefficients for this equation
[3 values with dtype=object]
SCIENTIFIC_CALIB_COMMENT
(N_CALIB_PARAM, N_PARAM)
object
...
long_name :
Comment applying to this parameter calibration
[3 values with dtype=object]
SCIENTIFIC_CALIB_DATE
(N_CALIB_PARAM, N_PARAM)
object
...
long_name :
Date of calibration
conventions :
YYYYMMDDHHMISS
[3 values with dtype=object]
JULD_CALIB_EQUATION
(N_CALIB_JULD)
object
...
long_name :
Calibration equation for JULD
[1 values with dtype=object]
JULD_CALIB_COEFFICIENT
(N_CALIB_JULD)
object
...
long_name :
Calibration coefficients for JULD equation
[1 values with dtype=object]
JULD_CALIB_COMMENT
(N_CALIB_JULD)
object
...
long_name :
Comment applying to JULD calibration
[1 values with dtype=object]
JULD_CALIB_DATE
(N_CALIB_JULD)
object
...
long_name :
Date of JULD calibration
conventions :
YYYYMMDDHHMISS
[1 values with dtype=object]
HISTORY_INSTITUTION
(N_HISTORY)
object
...
long_name :
Institution which performed action
conventions :
Argo reference table 4
[570 values with dtype=object]
HISTORY_STEP
(N_HISTORY)
object
...
long_name :
Step in data processing
conventions :
Argo reference table 12
[570 values with dtype=object]
HISTORY_SOFTWARE
(N_HISTORY)
object
...
long_name :
Name of software which performed action
conventions :
Institution dependent
[570 values with dtype=object]
HISTORY_SOFTWARE_RELEASE
(N_HISTORY)
object
...
long_name :
Version/release of software which performed action
conventions :
Institution dependent
[570 values with dtype=object]
HISTORY_REFERENCE
(N_HISTORY)
object
...
long_name :
Reference of database
conventions :
Institution dependent
[570 values with dtype=object]
HISTORY_DATE
(N_HISTORY)
object
...
long_name :
Date the history record was created
conventions :
YYYYMMDDHHMISS
[570 values with dtype=object]
HISTORY_ACTION
(N_HISTORY)
object
...
long_name :
Action performed on data
conventions :
Argo reference table 7
[570 values with dtype=object]
HISTORY_PARAMETER
(N_HISTORY)
object
...
long_name :
Parameter action is performed on
conventions :
Argo reference table 3
[570 values with dtype=object]
HISTORY_PREVIOUS_VALUE
(N_HISTORY)
float32
...
long_name :
Parameter/Flag previous value before action
[570 values with dtype=float32]
HISTORY_INDEX_DIMENSION
(N_HISTORY)
object
...
long_name :
Name of dimension to which HISTORY_START_INDEX and HISTORY_STOP_INDEX correspond
conventions :
C: N_CYCLE, M: N_MEASUREMENT
[570 values with dtype=object]
HISTORY_START_INDEX
(N_HISTORY)
float64
...
long_name :
Start index action applied on
[570 values with dtype=float64]
HISTORY_STOP_INDEX
(N_HISTORY)
float64
...
long_name :
Stop index action applied on
[570 values with dtype=float64]
HISTORY_QCTEST
(N_HISTORY)
object
...
long_name :
Documentation of tests performed, tests failed (in hex form)
conventions :
Write tests performed when ACTION=QCP$; tests failed when ACTION=QCF$
[570 values with dtype=object]
title :
Argo float trajectory file
institution :
CORIOLIS
source :
Argo float
history :
2023-03-21T11:02:27Z creation; 2025-09-08T06:31:49Z last update (coriolis COQC software)
references :
http://www.argodatamgt.org/Documentation
user_manual_version :
3.4
Conventions :
Argo-3.2 CF-1.6
featureType :
trajectory
decoder_version :
CODA_079a
id :
https://doi.org/10.17882/42182
comment_on_resolution :
JULD and PRES variable resolutions depend on measurement codes
comment_on_measurement_code :
Meaning of some specific measurement codes for this float: 89: cycle start time, 189: buoyancy action during descent to park pressure, 190: descending profile dated levels, 198: max pressure sampled during descent to park pressure, 203: descending profile deepest level, 289: buoyancy action during drift at park pressure, 297: min pressure sampled during drift at park pressure, 298: max pressure sampled during drift at park pressure, 301: representative park measurement, 389: buoyancy action during descent to profile pressure, 398: max pressure sampled during descent to profile pressure, 489: buoyancy action during drift at profile pressure, 497: min pressure sampled during drift at profile pressure, 498: max pressure sampled during drift at profile pressure, 503: ascending profile deepest level, 589: buoyancy action during ascending profile, 590: ascending profile dated levels, 599: last pumped CTD raw measurement sampled during ascending profile, 710: in-water samples, part of surface sequence, relative to TST, 711: in-air samples, part of surface sequence, relative to TST, 901: grounded information
lon=Rtraj.LONGITUDE.where(Rtraj.POSITION_QC.values.astype(float)==1)lat=Rtraj.LATITUDE.where(Rtraj.POSITION_QC.values.astype(float)==1)lon=lon[~np.isnan(lon)&~np.isnan(Rtraj.LATITUDE)]lat=lat[~np.isnan(lat)&~np.isnan(Rtraj.LATITUDE)]fig,ax=plt.subplots(figsize=(10,10),subplot_kw={'projection':ccrs.PlateCarree()})ax.plot(lon,lat,'-b.',label='Float surfacing')ax.plot(lon[0],lat[0],'ok',markersize=12,label='Deployment')ax.plot(lon[-1],lat[-1],'sk',markersize=12,label='Last surfacing')ax.add_feature(cartopy.feature.LAND.with_scale('10m'))ax.add_feature(cartopy.feature.COASTLINE.with_scale('10m'),edgecolor='black')#ax.set_title(f"Data from {Rtraj.PLATFORM_NUMBER.values.astype(str)}")ax.legend()ax.gridlines(draw_labels=True);