Skip to content

Commit 68f9ad9

Browse files
authored
Merge pull request #88 from HYPERNETS/include_plots
Merging all branches and fixing so it runs
2 parents 8331dad + 299fb9d commit 68f9ad9

File tree

139 files changed

+16698
-993
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

139 files changed

+16698
-993
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from hypernets_processor.data_io.hypernets_ds_builder import HypernetsDSBuilder
2+
from hypernets_processor.data_io.hypernets_writer import HypernetsWriter
3+
from hypernets_processor.main_processor import HypernetsProcessor
4+
from hypernets_processor.scheduler import Scheduler

build/lib/hypernets_processor/calibration/__init__.py

Whitespace-only changes.

build/lib/hypernets_processor/calibration/calibrate.py

Lines changed: 409 additions & 0 deletions
Large diffs are not rendered by default.

build/lib/hypernets_processor/calibration/measurement_functions/__init__.py

Whitespace-only changes.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
'''
2+
Measurement function object creator
3+
'''
4+
5+
from hypernets_processor.version import __version__
6+
from hypernets_processor.calibration.measurement_functions.standard_measurement_function import StandardMeasurementFunction
7+
from hypernets_processor.calibration.measurement_functions.template_measurement_function import TemplateMeasurementFunction
8+
9+
'''___Authorship___'''
10+
__author__ = "Pieter De Vis"
11+
__created__ = "30/03/2020"
12+
__version__ = __version__
13+
__maintainer__ = "Pieter De Vis"
14+
__email__ = "Pieter.De.Vis@npl.co.uk"
15+
__status__ = "Development"
16+
17+
18+
class MeasurementFunctionFactory:
19+
def __init__(self):
20+
self.measurement_functions = dict([(StandardMeasurementFunction.get_name(),StandardMeasurementFunction()),
21+
(TemplateMeasurementFunction.get_name(),TemplateMeasurementFunction())])
22+
23+
def get_names(self):
24+
return self.measurement_functions.keys()
25+
26+
def get_measurement_function(self,name) -> object:
27+
return self.measurement_functions[name]
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
2+
3+
4+
5+
class StandardMeasurementFunction:
6+
7+
def function(self,digital_number,gains,dark_signal,non_linear,int_time):
8+
'''
9+
This function implements the measurement function.
10+
Each of the arguments can be either a scalar or a vector (1D-array).
11+
'''
12+
DN=digital_number-dark_signal
13+
corrected_DN = DN /(non_linear[0]+non_linear[1]*DN+
14+
non_linear[2]*DN**2+
15+
non_linear[3]*DN**3+
16+
non_linear[4]*DN**4+
17+
non_linear[5]*DN**5+
18+
non_linear[6]*DN**6+
19+
non_linear[7]*DN**7)
20+
21+
# print(DN[500,5],corrected_DN[500,5],(gains*corrected_DN/int_time*1000)[500,5])
22+
23+
return gains*corrected_DN/int_time*1000
24+
25+
@staticmethod
26+
def get_name():
27+
return "StandardMeasurementFunction"
28+
29+
def get_argument_names(self):
30+
return ["digital_number","gains","dark_signal","non_linearity_coefficients","integration_time"]
31+
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
2+
3+
4+
5+
class TemplateMeasurementFunction:
6+
7+
8+
def function(self,digital_number,gains,dark_signal,temp):
9+
'''
10+
This function implements the measurement function.
11+
Each of the arguments can be either a scalar or a vector (1D-array).
12+
'''
13+
14+
return gains*(digital_number-dark_signal)+temp**0.3
15+
16+
@staticmethod
17+
def get_name():
18+
return "TemplateMeasurementFunction"
19+
20+
def get_argument_names(self):
21+
return ["digital_number","gains","dark_signal","temp"]

build/lib/hypernets_processor/calibration/tests/__init__.py

Whitespace-only changes.
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
"""
2+
Tests for Calibrate class
3+
"""
4+
5+
import unittest
6+
from unittest.mock import MagicMock, patch, call
7+
from hypernets_processor.version import __version__
8+
from hypernets_processor.test.test_functions import setup_test_job_config, setup_test_processor_config
9+
from hypernets_processor.calibration.calibrate import Calibrate
10+
import xarray as xr
11+
import numpy as np
12+
13+
'''___Authorship___'''
14+
__author__ = "Pieter De Vis"
15+
__created__ = "2/9/2020"
16+
__version__ = __version__
17+
__maintainer__ = "Pieter De Vis"
18+
__email__ = "pieter.de.vis@npl.co.uk"
19+
__status__ = "Development"
20+
21+
def setup_test_files():
22+
ds_irr = xr.open_dataset('../examples/HYPERNETS_W_VFFR_L0_IRR_202008211547_v0.0.nc')
23+
ds_rad = xr.open_dataset('../examples/HYPERNETS_W_VFFR_L0_RAD_202008211547_v0.0.nc')
24+
ds_bla = xr.open_dataset('../examples/HYPERNETS_W_VFFR_L0_BLA_202008211547_v0.0.nc')
25+
26+
ds_rad["digital_number"].values=np.ones(["digital_number"].values.shape)
27+
ds_irr["digital_number"].values=np.ones(["digital_number"].values.shape)
28+
ds_bla["digital_number"].values=np.ones(["digital_number"].values.shape)
29+
30+
class TestCalibrate(unittest.TestCase):
31+
def test_here(self):
32+
self.assertEqual(1+1,2)
33+
34+
#
35+
# def test_calibrate_l1a(self,measurandstring,dataset_l0,dataset_l0_bla,calibration_data,
36+
# measurement_function='StandardMeasurementFunction'):
37+
# self.assertEqual(1,1)
38+
#
39+
#
40+
# def test_average_l1b(self,measurandstring,dataset_l1a):
41+
# self.assertEqual(1,1)
42+
#
43+
# def test_calc_mean_masked(self,dataset,var,rand_unc=False,corr=False):
44+
# self.assertEqual(1,1)
45+
#
46+
# def test_find_nearest_black(self,dataset,acq_time,int_time):
47+
# self.assertEqual(1,1)
48+
#
49+
# def test_find_input(self,variables,dataset,datasetbla,ancillary_dataset):
50+
# self.assertEqual(1,1)
51+
#
52+
# def test_find_u_random_input(self,variables,dataset,datasetbla,ancillary_dataset,masked_avg=False):
53+
# self.assertEqual(1,1)
54+
#
55+
# def test_find_u_systematic_input(self,variables,dataset,datasetbla,ancillary_dataset,masked_avg=False):
56+
# self.assertEqual(1,1)
57+
#
58+
# def test_preprocess_l0(self,datasetl0,datasetl1a):
59+
# self.assertEqual(1,1)
60+
#
61+
# def test_clip_and_mask(self,dataset,k_unc=2):
62+
# self.assertEqual(1,1)
63+
#
64+
# def test_sigma_clip(self,values,tolerance=0.001,median=True,sigma_thresh=3.0):
65+
# self.assertEqual(1,1)
66+
#
67+
# def test_l1a_template_from_l0_dataset(self,measurandstring,datasetl0):
68+
# self.assertEqual(1,1)
69+
#
70+
#
71+
# def test_process_measurement_function(self,measurandstring,dataset,measurement_function,input_quantities,
72+
# u_random_input_quantities,u_systematic_input_quantities):
73+
# self.assertEqual(1,1)
74+
#
75+
76+
if __name__ == '__main__':
77+
pass

build/lib/hypernets_processor/cli/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)