seabirdfilehandler 0.7.0__tar.gz → 0.7.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of seabirdfilehandler might be problematic. Click here for more details.

Files changed (16) hide show
  1. {seabirdfilehandler-0.7.0 → seabirdfilehandler-0.7.1}/PKG-INFO +1 -1
  2. {seabirdfilehandler-0.7.0 → seabirdfilehandler-0.7.1}/pyproject.toml +1 -1
  3. {seabirdfilehandler-0.7.0 → seabirdfilehandler-0.7.1}/src/seabirdfilehandler/cnvfile.py +5 -4
  4. {seabirdfilehandler-0.7.0 → seabirdfilehandler-0.7.1}/src/seabirdfilehandler/file_collection.py +1 -1
  5. {seabirdfilehandler-0.7.0 → seabirdfilehandler-0.7.1}/src/seabirdfilehandler/parameter.py +37 -4
  6. {seabirdfilehandler-0.7.0 → seabirdfilehandler-0.7.1}/LICENSE +0 -0
  7. {seabirdfilehandler-0.7.0 → seabirdfilehandler-0.7.1}/README.md +0 -0
  8. {seabirdfilehandler-0.7.0 → seabirdfilehandler-0.7.1}/src/seabirdfilehandler/__init__.py +0 -0
  9. {seabirdfilehandler-0.7.0 → seabirdfilehandler-0.7.1}/src/seabirdfilehandler/bottlefile.py +0 -0
  10. {seabirdfilehandler-0.7.0 → seabirdfilehandler-0.7.1}/src/seabirdfilehandler/bottlelogfile.py +0 -0
  11. {seabirdfilehandler-0.7.0 → seabirdfilehandler-0.7.1}/src/seabirdfilehandler/datafiles.py +0 -0
  12. {seabirdfilehandler-0.7.0 → seabirdfilehandler-0.7.1}/src/seabirdfilehandler/geomar_ctd_file_parser.py +0 -0
  13. {seabirdfilehandler-0.7.0 → seabirdfilehandler-0.7.1}/src/seabirdfilehandler/hexfile.py +0 -0
  14. {seabirdfilehandler-0.7.0 → seabirdfilehandler-0.7.1}/src/seabirdfilehandler/processing_steps.py +0 -0
  15. {seabirdfilehandler-0.7.0 → seabirdfilehandler-0.7.1}/src/seabirdfilehandler/utils.py +0 -0
  16. {seabirdfilehandler-0.7.0 → seabirdfilehandler-0.7.1}/src/seabirdfilehandler/xmlfiles.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: seabirdfilehandler
3
- Version: 0.7.0
3
+ Version: 0.7.1
4
4
  Summary: Library of parsers to interact with SeaBird CTD files.
5
5
  Keywords: CTD,parser,seabird,data
6
6
  Author: Emil Michels
@@ -20,7 +20,7 @@ urls.homepage = "https://ctd-software.pages.io-warnemuende.de/seabirdfilehandler
20
20
  urls.repository = "https://git.io-warnemuende.de/CTD-Software/SeabirdFileHandler"
21
21
  urls.documentation = "https://ctd-software.pages.io-warnemuende.de/seabirdfilehandler"
22
22
  dynamic = []
23
- version = "0.7.0"
23
+ version = "0.7.1"
24
24
 
25
25
  [tool.poetry]
26
26
 
@@ -95,7 +95,7 @@ class CnvFile(DataFile):
95
95
 
96
96
  """
97
97
  time_parameter = None
98
- for parameter in self.df.columns:
98
+ for parameter in self.parameters.keys():
99
99
  if parameter.lower().startswith("time"):
100
100
  time_parameter = parameter
101
101
  if time_parameter and self.start_time:
@@ -106,8 +106,9 @@ class CnvFile(DataFile):
106
106
  timedelta(days=float(time)) + self.start_time
107
107
  if time_parameter == "timeJ"
108
108
  else timedelta(seconds=float(time)) + self.start_time
109
- for time in self.df[time_parameter]
110
- ]
109
+ for time in self.parameters[time_parameter].data
110
+ ],
111
+ dtype=str,
111
112
  ),
112
113
  )
113
114
  return True
@@ -159,7 +160,7 @@ class CnvFile(DataFile):
159
160
  def array2cnv(self) -> list:
160
161
  result = []
161
162
  for row in self.parameters.full_data_array:
162
- formatted_row = "".join(f"{elem:11}" for elem in row)
163
+ formatted_row = "".join(elem.rjust(11) for elem in row)
163
164
  result.append(formatted_row + "\n")
164
165
  return result
165
166
 
@@ -445,7 +445,7 @@ class CnvCollection(FileCollection):
445
445
  A list of ProcessingSteps.
446
446
  """
447
447
  individual_processing_steps = [
448
- file.processing_steps for file in self.data
448
+ file.processing_steps.modules for file in self.data
449
449
  ]
450
450
  for index, step_info in enumerate(individual_processing_steps):
451
451
  if step_info != individual_processing_steps[0]:
@@ -78,7 +78,7 @@ class Parameters(UserDict):
78
78
  for i in range(0, len(line) - n, n)
79
79
  ]
80
80
  )
81
- return np.array(row_list, dtype=float)
81
+ return np.array(row_list, dtype="<U20")
82
82
 
83
83
  def create_parameter_instances(
84
84
  self,
@@ -176,7 +176,7 @@ class Parameters(UserDict):
176
176
  for line in post
177
177
  }
178
178
 
179
- def add_parameter(self, parameter: Parameter):
179
+ def add_parameter(self, parameter: Parameter, position: str = ""):
180
180
  """
181
181
  Adds one parameter instance to the collection.
182
182
 
@@ -186,13 +186,36 @@ class Parameters(UserDict):
186
186
  The new parameter
187
187
 
188
188
  """
189
- self.data[parameter.name] = parameter
189
+ position_index = -1
190
+ # add to parameter dict at given
191
+ if position:
192
+ new_dict = {}
193
+ for index, (key, value) in enumerate(self.data.items()):
194
+ new_dict[key] = value
195
+ if key == position:
196
+ new_dict[parameter.name] = parameter
197
+ position_index = index + 1
198
+ self.data = new_dict
199
+
200
+ else:
201
+ self.data[parameter.name] = parameter
202
+
203
+ # update metadata dict
204
+ self.metadata = {
205
+ parameter.name: parameter.metadata
206
+ for parameter in self.data.values()
207
+ }
208
+ # add to full numpy data array
209
+ self.full_data_array = np.insert(
210
+ self.full_data_array, position_index, parameter.data, axis=1
211
+ )
190
212
 
191
213
  def create_parameter(
192
214
  self,
193
215
  data: np.ndarray | int | float | str,
194
216
  metadata: dict = {},
195
217
  name: str = "",
218
+ position: str = "",
196
219
  ) -> Parameter:
197
220
  """
198
221
  Creates a new parameter instance with the given data and metadata.
@@ -233,7 +256,7 @@ class Parameters(UserDict):
233
256
  shape=self.full_data_array.shape[0],
234
257
  )
235
258
  parameter = Parameter(data=data, metadata=metadata)
236
- self.add_parameter(parameter)
259
+ self.add_parameter(parameter, position)
237
260
  return parameter
238
261
 
239
262
  def add_default_metadata(
@@ -426,6 +449,7 @@ class Parameter:
426
449
  self.data = data
427
450
  self.metadata = metadata
428
451
  self.name = metadata["shortname"]
452
+ self.parse_to_float()
429
453
  self.update_span()
430
454
 
431
455
  def __str__(self) -> str:
@@ -457,6 +481,15 @@ class Parameter:
457
481
  except KeyError:
458
482
  return
459
483
 
484
+ def parse_to_float(self):
485
+ """
486
+ Tries to parse the data array type to float.
487
+ """
488
+ try:
489
+ self.data = self.data.astype("float64")
490
+ except ValueError:
491
+ pass
492
+
460
493
  def update_span(self):
461
494
  """
462
495
  Updates the data span.