@@ -89,7 +89,7 @@ class COOPSXarrayReader(COOPSDataframeReader):
8989
9090 output_instance = "xarray:Dataset"
9191
92- def _read (self , stationid , process_adcp : bool = False ):#, metadata_in: Optional[dict] = None):
92+ def _read (self , stationid , process_adcp : Union [ str , bool ] = False ):#, metadata_in: Optional[dict] = None):
9393 """Read as DataFrame but convert to Dataset."""
9494 # metadata_in = metadata_in or {}
9595
@@ -122,20 +122,32 @@ def _read(self, stationid, process_adcp: bool = False):#, metadata_in: Optional[
122122 )
123123
124124 if process_adcp :
125- ds = self .process_adcp (metadata , ds )
125+ ds = self .process_adcp (metadata , ds , process_adcp )
126126
127127 return ds
128128
129- def process_adcp (self , metadata , ds , process_uv = False , process_along = False , process_subtidal = False ):
129+ def process_adcp (self , metadata , ds , process_adcp ):
130130 """Process ADCP data.
131131
132+ Parameters
133+ ----------
134+ process_adcp: str, bool
135+
136+ * "process_uv": process adcp to include `u`/`v` in dataset
137+ * "process_along": process adcp to include `u`/`v` and `ualong`/`vacross` in dataset
138+ * "process_subtidal": process adcp to include `u`/`v`, `ualong`/`vacross`, and `ualong_subtidal`/`vacross_subtidal` in dataset
139+ * True is equivalent to "process_subtidal"
140+
132141 Returns
133142 -------
134143 Dataset
135144 With u and v, ualong and vacross, and subtidal versions ualong_subtidal, vacross_subtidal
136145 """
137146
138- if process_uv or process_along or process_subtidal :
147+ if process_adcp == True :
148+ process_adcp = "process_subtidal"
149+
150+ if process_adcp in ["process_uv" , "process_along" , "process_subtidal" ]:
139151 ds ["u" ] = (
140152 np .cos (np .deg2rad (ds .cf ["dir" ])) * ds .cf ["speed" ] / 100
141153 )
@@ -157,7 +169,7 @@ def process_adcp(self, metadata, ds, process_uv=False, process_along=False, proc
157169 "units" : "m s-1" ,
158170 }
159171
160- if process_along or process_subtidal :
172+ if process_adcp in [ "process_along" , " process_subtidal" ] :
161173 theta = metadata ["deployments" ]["flood_direction_degrees" ]
162174 ds ["ualong" ] = ds ["u" ] * np .cos (np .deg2rad (theta )) + ds [
163175 "v"
@@ -174,7 +186,7 @@ def process_adcp(self, metadata, ds, process_uv=False, process_along=False, proc
174186 "units" : "m s-1" ,
175187 }
176188
177- if process_subtidal :
189+ if process_adcp == " process_subtidal" :
178190 # calculate subtidal velocities
179191 ds ["ualong_subtidal" ] = tidal_filter (ds ["ualong" ])
180192 ds ["vacross_subtidal" ] = tidal_filter (ds ["vacross" ])
0 commit comments