dkist-processing-cryonirsp 0.0.4__tar.gz → 0.0.5__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 dkist-processing-cryonirsp might be problematic. Click here for more details.

Files changed (111) hide show
  1. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/CHANGELOG.rst +9 -0
  2. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/PKG-INFO +1 -1
  3. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/models/parameters.py +2 -2
  4. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/linearity_correction.py +22 -6
  5. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp.egg-info/PKG-INFO +1 -1
  6. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/.gitignore +0 -0
  7. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/.pre-commit-config.yaml +0 -0
  8. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/.readthedocs.yml +0 -0
  9. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/README.rst +0 -0
  10. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/SCIENCE_CHANGELOG.rst +0 -0
  11. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/bitbucket-pipelines.yml +0 -0
  12. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/changelog/.gitempty +0 -0
  13. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/check_changelog_updated.sh +0 -0
  14. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/__init__.py +0 -0
  15. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/models/__init__.py +0 -0
  16. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/models/constants.py +0 -0
  17. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/models/filter.py +0 -0
  18. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/models/tags.py +0 -0
  19. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/models/task_name.py +0 -0
  20. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/parsers/__init__.py +0 -0
  21. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +0 -0
  22. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py +0 -0
  23. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/parsers/map_repeats.py +0 -0
  24. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/parsers/measurements.py +0 -0
  25. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/parsers/modstates.py +0 -0
  26. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/parsers/polarimeter_mode.py +0 -0
  27. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/parsers/polcal_task.py +0 -0
  28. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/parsers/scan_step.py +0 -0
  29. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/parsers/task.py +0 -0
  30. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/parsers/time.py +0 -0
  31. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/parsers/wavelength.py +0 -0
  32. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/__init__.py +0 -0
  33. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/assemble_movie.py +0 -0
  34. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/bad_pixel_map.py +0 -0
  35. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +0 -0
  36. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +0 -0
  37. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/ci_science.py +0 -0
  38. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/cryonirsp_base.py +0 -0
  39. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/dark.py +0 -0
  40. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/gain.py +0 -0
  41. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/instrument_polarization.py +0 -0
  42. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/l1_output_data.py +0 -0
  43. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/make_movie_frames.py +0 -0
  44. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/mixin/__init__.py +0 -0
  45. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/mixin/beam_access.py +0 -0
  46. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/mixin/corrections.py +0 -0
  47. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/mixin/input_frame.py +0 -0
  48. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/mixin/intermediate_frame.py +0 -0
  49. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/mixin/linearized_frame.py +0 -0
  50. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/parse.py +0 -0
  51. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/quality_metrics.py +0 -0
  52. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/science_base.py +0 -0
  53. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +0 -0
  54. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/sp_geometric.py +0 -0
  55. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/sp_science.py +0 -0
  56. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/sp_solar_gain.py +0 -0
  57. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/trial_output_data.py +0 -0
  58. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tasks/write_l1.py +0 -0
  59. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/__init__.py +0 -0
  60. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/ci_e2e_test.py +0 -0
  61. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/conftest.py +0 -0
  62. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/e2e_helpers.py +0 -0
  63. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/e2e_linearize.py +0 -0
  64. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/sp_e2e_test.py +0 -0
  65. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_assemble_movie.py +0 -0
  66. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +0 -0
  67. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_build_quality_report.py +0 -0
  68. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +0 -0
  69. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_ci_make_movie_frames.py +0 -0
  70. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_ci_science.py +0 -0
  71. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_cryo_base.py +0 -0
  72. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_cryo_constants.py +0 -0
  73. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_dark.py +0 -0
  74. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_gain.py +0 -0
  75. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_instrument_polarization.py +0 -0
  76. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_linearity_correction.py +0 -0
  77. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_parameters.py +0 -0
  78. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_parse.py +0 -0
  79. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_quality.py +0 -0
  80. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +0 -0
  81. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_sp_geometric.py +0 -0
  82. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py +0 -0
  83. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_sp_science.py +0 -0
  84. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_sp_solar.py +0 -0
  85. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_submit_qualilty.py +0 -0
  86. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_workflows.py +0 -0
  87. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/tests/test_write_l1.py +0 -0
  88. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/workflows/__init__.py +0 -0
  89. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/workflows/ci_l0_processing.py +0 -0
  90. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/workflows/sp_l0_processing.py +0 -0
  91. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp/workflows/trial_workflows.py +0 -0
  92. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp.egg-info/SOURCES.txt +0 -0
  93. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp.egg-info/dependency_links.txt +0 -0
  94. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp.egg-info/requires.txt +0 -0
  95. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/dkist_processing_cryonirsp.egg-info/top_level.txt +0 -0
  96. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/docs/Makefile +0 -0
  97. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/docs/changelog.rst +0 -0
  98. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/docs/conf.py +0 -0
  99. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/docs/index.rst +0 -0
  100. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/docs/l0_to_l1_cryonirsp_ci.rst +0 -0
  101. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/docs/l0_to_l1_cryonirsp_sp.rst +0 -0
  102. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/docs/make.bat +0 -0
  103. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/docs/requirements.txt +0 -0
  104. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/docs/requirements_table.rst +0 -0
  105. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/docs/scientific_changelog.rst +0 -0
  106. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/licenses/LICENSE.rst +0 -0
  107. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/pyproject.toml +0 -0
  108. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/science_towncrier.sh +0 -0
  109. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/setup.cfg +0 -0
  110. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/setup.py +0 -0
  111. {dkist_processing_cryonirsp-0.0.4 → dkist_processing_cryonirsp-0.0.5}/towncrier_science.toml +0 -0
@@ -1,3 +1,12 @@
1
+ v0.0.5 (2023-09-06)
2
+ ===================
3
+
4
+ Misc
5
+ ----
6
+
7
+ - Refactor linearity correction to improve memory usage. (`#59 <https://bitbucket.org/dkistdc/dkist-processing-cryonirsp/pull-requests/59>`__)
8
+
9
+
1
10
  v0.0.4 (2023-09-06)
2
11
  ===================
3
12
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dkist_processing_cryonirsp
3
- Version: 0.0.4
3
+ Version: 0.0.5
4
4
  Summary: Science processing code for the Cryo-NIRSP instrument on DKIST
5
5
  Home-page: https://bitbucket.org/dkistdc/dkist_processing_cryonirsp/src/main/
6
6
  Author: NSO / AURA
@@ -159,13 +159,13 @@ class CryonirspParameters(ParameterBase):
159
159
  def linearization_thresholds(self) -> np.ndarray:
160
160
  """Name of parameter associated with the linearization thresholds."""
161
161
  param_dict = self._find_parameter_for_arm("cryonirsp_linearization_thresholds")
162
- return self._load_param_value_from_npy_file(param_dict)
162
+ return self._load_param_value_from_npy_file(param_dict).astype(np.float32)
163
163
 
164
164
  @cached_property
165
165
  def linearization_polyfit_coeffs(self) -> np.ndarray:
166
166
  """Name of parameter associated with the linearization polyfit coefficients."""
167
167
  param_dict = self._find_parameter_for_arm("cryonirsp_linearization_polyfit_coeffs")
168
- return self._load_param_value_from_npy_file(param_dict)
168
+ return self._load_param_value_from_npy_file(param_dict).astype(np.float32)
169
169
 
170
170
  def _find_parameter_closest_wavelength(self, parameter_name: str) -> Any:
171
171
  """
@@ -1,4 +1,5 @@
1
1
  """CryoNIRSP Linearity COrrection Task."""
2
+ import sys
2
3
  from dataclasses import dataclass
3
4
  from typing import Generator
4
5
 
@@ -52,6 +53,7 @@ class LinearityCorrection(WorkflowTaskBase, InputFrameMixin, InputDatasetMixin,
52
53
  self.parameters = CryonirspParameters(
53
54
  self.input_dataset_parameters, arm_id=self.constants.arm_id
54
55
  )
56
+ self.current_ramp_number = None
55
57
 
56
58
  def run(self):
57
59
  """Run method for this task.
@@ -71,6 +73,7 @@ class LinearityCorrection(WorkflowTaskBase, InputFrameMixin, InputDatasetMixin,
71
73
  with self.apm_task_step(
72
74
  f"Processing frames from {ramp_set.time_obs}: ramp set {ramp_set.current_ramp_set_num} of {ramp_set.total_ramp_sets}"
73
75
  ):
76
+ self.current_ramp_number = ramp_set.current_ramp_set_num
74
77
  with self.apm_task_step(f"Gathering Inputs"):
75
78
  ramp_objs = self._gather_inputs_for_ramp_set(ramp_set=ramp_set)
76
79
  with self.apm_processing_step("Performing Linearization Correction"):
@@ -210,11 +213,13 @@ class LinearityCorrection(WorkflowTaskBase, InputFrameMixin, InputDatasetMixin,
210
213
  """Process a single ramp from a set of input frames whose mode is 'LookUpTable' and camera readout mode is 'FastUpTheRamp'."""
211
214
  # drop first frame in FastUpTheRamp
212
215
  ramp_objs = ramp_objs[1:]
213
-
214
- exptimes = np.array([obj.fpa_exposure_time_ms for obj in ramp_objs])
216
+ exptimes = np.array([obj.fpa_exposure_time_ms for obj in ramp_objs]).astype(np.float32)
215
217
 
216
218
  # Create a 3D stack of the ramp frames that has shape (x, y, num_ramps)
217
- raw_data = np.zeros((ramp_objs[0].data.shape + (len(ramp_objs),)))
219
+ raw_data = np.zeros((ramp_objs[0].data.shape + (len(ramp_objs),)), dtype=np.float32)
220
+ logger.info(
221
+ f"Size of ramp data cube for ramp {self.current_ramp_number} is {sys.getsizeof(raw_data)} bytes"
222
+ )
218
223
  for n, obj in enumerate(ramp_objs):
219
224
  raw_data[:, :, n] = obj.data
220
225
 
@@ -230,14 +235,13 @@ class LinearityCorrection(WorkflowTaskBase, InputFrameMixin, InputDatasetMixin,
230
235
  roi_1_origin_y : (roi_1_origin_y + roi_1_size_y),
231
236
  roi_1_origin_x : (roi_1_origin_x + roi_1_size_x),
232
237
  ]
233
-
234
238
  # correct the whole data first using the curve derived from the on Sun data
235
239
  linc = np.flip(lin_curve)
236
- raw_data = self._lin_correct(raw_data, linc)
237
-
240
+ raw_data = self._lin_correct_by_row(raw_data, linc)
238
241
  slopes = self._get_slopes(exptimes, raw_data, thres_roi)
239
242
  # Scale the slopes by the exposure time to convert to counts
240
243
  processed_frame = slopes * np.nanmax(exptimes)
244
+
241
245
  return processed_frame
242
246
 
243
247
  def _reduce_ramp_set(
@@ -282,3 +286,15 @@ class LinearityCorrection(WorkflowTaskBase, InputFrameMixin, InputDatasetMixin,
282
286
  raise ValueError(
283
287
  f"Linearization mode {mode} and camera readout mode {camera_readout_mode} is currently not supported."
284
288
  )
289
+
290
+ def _lin_correct_by_row(self, raw_data: np.ndarray, linc: np.ndarray) -> np.ndarray:
291
+ """
292
+ Perform linearity correction on the data cube one row at a time.
293
+
294
+ The cube of cryonirsp ramp data can be very large (2k x 2k x 100+ elements) and so to
295
+ better constrain memory only one row-based-slice of the cube is corrected at any given time.
296
+ :return:
297
+ """
298
+ for j in range(raw_data.shape[0]):
299
+ raw_data[j, :] = self._lin_correct(raw_data[j, :], linc)
300
+ return raw_data
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dkist-processing-cryonirsp
3
- Version: 0.0.4
3
+ Version: 0.0.5
4
4
  Summary: Science processing code for the Cryo-NIRSP instrument on DKIST
5
5
  Home-page: https://bitbucket.org/dkistdc/dkist_processing_cryonirsp/src/main/
6
6
  Author: NSO / AURA