Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
216 commits
Select commit Hold shift + click to select a range
130a3c6
Bug fix when running water branch without uncertainties (otherwise cr…
kevinruddick Jul 25, 2024
ccb752a
Bug fix for GDAS wind speeds west of 0° (HYPSTAR convention -180° to …
kevinruddick Jul 31, 2024
cfcf63a
Add "m" anomaly if metadata missing + do not keep trying to reprocess…
kevinruddick Jul 31, 2024
1a45e55
new calib files
pdevis Aug 9, 2024
6d5d988
fix typo
pdevis Aug 9, 2024
2799491
add new options
pdevis Aug 9, 2024
9bb9361
improve post-processing qc
pdevis Aug 9, 2024
8dc040b
add delay functionality
pdevis Aug 9, 2024
7553411
improve metadata
pdevis Aug 9, 2024
c3a71ee
fix bug resulting in no anomaly being added
pdevis Aug 9, 2024
9d9f974
better approach to removing unc comps when mcsteps is set to 0
pdevis Aug 12, 2024
78c0b30
right approach is to make sure there is anomaly, as opposed to removi…
pdevis Aug 12, 2024
17c3099
Merge branch 'RBINS_v2.0.1_waterdev' of https://github.com/HYPERNETS/…
pdevis Aug 12, 2024
45eb621
v2.1 calib files
pdevis Aug 14, 2024
2f133ef
better handling of version numbers of calib files
pdevis Aug 14, 2024
8781c79
enable calibration interpolation methods
pdevis Aug 14, 2024
2b365bd
add delay feature and improve handling when metadata file is missing
pdevis Aug 14, 2024
974961a
bug fix WWUK sequence
pdevis Aug 14, 2024
6ab5f11
update version number
pdevis Aug 14, 2024
e611c05
adding new config values to water defaults
pdevis Aug 15, 2024
3c20bda
fixing directories when using yyyy/mm/dd raw data structure
pdevis Sep 5, 2024
b464a31
improve warning when not setting working_directory
pdevis Sep 5, 2024
29406c3
clean up outdated docs files
pdevis Sep 5, 2024
ab53bd1
clean up outdated docs files
pdevis Sep 23, 2024
149baad
correct add_measurement
pdevis Sep 23, 2024
0a826b9
update paths for eoserver
pdevis Sep 25, 2024
37faac2
add radcalnet convertor
pdevis Oct 21, 2024
3a4cfa5
split time periods per instrument
pdevis Nov 29, 2024
3cd8ef9
split time periods per instrument
pdevis Nov 29, 2024
f7800cb
updates from joe
jriordan20 Nov 29, 2024
d690078
split time periods per instrument
pdevis Nov 30, 2024
fe26b24
updates from joe
jriordan20 Dec 12, 2024
80445c4
Merge branch 'postprocessing' of https://github.com/HYPERNETS/hyperne…
jriordan20 Dec 12, 2024
e74c2b1
post processing and L2B site specific checks
pdevis Dec 18, 2024
ef4ce94
fix present time
pdevis Dec 18, 2024
c5812f6
run more sites
pdevis Dec 19, 2024
0c931ef
clear sky models
pdevis Dec 27, 2024
5bb6f4c
clear sky models
pdevis Dec 27, 2024
a934cb4
clear sky models
pdevis Dec 27, 2024
a27057b
clear sky models
pdevis Dec 27, 2024
8b1a3e7
clear sky models
pdevis Dec 30, 2024
bcafb00
clear sky models
pdevis Dec 30, 2024
d88d238
clear sky models
pdevis Jan 2, 2025
6176ff5
clear sky models
pdevis Jan 2, 2025
693e3cc
clear sky models
pdevis Jan 3, 2025
9b285a2
clear sky models
pdevis Jan 3, 2025
7cdeb90
clear sky models
pdevis Jan 3, 2025
57dfd1c
clear sky models
pdevis Jan 6, 2025
fe34661
clear sky models using irr file
pdevis Feb 18, 2025
33af056
clear sky models using irr file
pdevis Feb 18, 2025
44e2948
clear sky models using irr file
pdevis Feb 18, 2025
1bb96f9
clear sky models using irr file
pdevis Feb 18, 2025
0bf388a
clear sky models using irr file
pdevis Feb 18, 2025
c8f30c7
clear sky models using irr file
pdevis Feb 18, 2025
9355889
clear sky models using irr file
pdevis Feb 18, 2025
8cdcb4b
clear sky models using irr file
pdevis Feb 18, 2025
d3d85a1
clear sky models using irr file
pdevis Feb 18, 2025
845a080
updates from joe
jriordan20 Feb 19, 2025
2c47c77
Merge branch 'postprocessing' of https://github.com/HYPERNETS/hyperne…
jriordan20 Feb 19, 2025
7649935
clear sky models using irr file
pdevis Feb 20, 2025
51c3e51
updates from joe
jriordan20 Feb 26, 2025
3242e99
Merge remote-tracking branch 'origin/postprocessing' into postprocessing
jriordan20 Feb 26, 2025
d51fb67
fit using single vza vaa for 10 wavelengths
pdevis Feb 27, 2025
ccd5067
updates from joe
jriordan20 Feb 27, 2025
3b41fdc
Merge remote-tracking branch 'origin/postprocessing' into postprocessing
jriordan20 Feb 27, 2025
66de91d
updates from joe
jriordan20 Mar 7, 2025
49f2153
adding site-specific quality checks
pdevis Mar 15, 2025
43b3960
adding site-specific quality checks
pdevis Mar 15, 2025
54ffbae
adding site-specific quality checks
pdevis Mar 15, 2025
aa5bfe5
adding site-specific quality checks
pdevis Mar 15, 2025
59c8549
adding site-specific quality checks
pdevis Mar 15, 2025
7331fd4
adding site-specific quality checks
pdevis Mar 15, 2025
6d96d93
updates from joe
jriordan20 Mar 17, 2025
8c0ebae
Merge branch 'postprocessing' of https://github.com/HYPERNETS/hyperne…
jriordan20 Mar 17, 2025
f44eedd
adding site-specific quality checks
pdevis Mar 17, 2025
60aef46
Merge remote-tracking branch 'origin/postprocessing' into postprocessing
pdevis Mar 17, 2025
b822d66
adding site-specific quality checks
pdevis Mar 17, 2025
4ab7575
adding site-specific quality checks
pdevis Mar 17, 2025
c3308e5
adding site-specific quality checks
pdevis Mar 17, 2025
208281b
adding correction graph, v1 data and time limited to (>08:00) + some …
pdevis Mar 17, 2025
d0dc6d0
remove print sequences
pdevis Mar 17, 2025
f7189f6
improve QC
pdevis Mar 17, 2025
69c44a3
updates from joe
jriordan20 Mar 18, 2025
0844e63
updates from joe
jriordan20 Mar 19, 2025
d68fa77
Merge remote-tracking branch 'origin/postprocessing' into postprocessing
jriordan20 Mar 19, 2025
321058d
updates from joe
jriordan20 Jun 16, 2025
d6c3a78
updates from joe
jriordan20 Jun 19, 2025
7072ff5
improve QC
pdevis Jun 19, 2025
b92b2dd
Merge remote-tracking branch 'origin/postprocessing' into postprocessing
pdevis Jun 19, 2025
523ecf0
improve QC
pdevis Jun 19, 2025
d675a17
improve QC
pdevis Jun 19, 2025
e85160c
improve QC
pdevis Jun 19, 2025
ff746ed
improve QC
pdevis Jun 20, 2025
a5069ff
improve QC
pdevis Jun 20, 2025
aab22b7
improve QC
pdevis Jun 20, 2025
4ef3555
improve QC
pdevis Jun 20, 2025
79baa92
improve QC
pdevis Jun 20, 2025
a85ea74
improve QC
pdevis Jun 20, 2025
1a09e4f
improve QC
pdevis Jun 20, 2025
3d5bdbb
improve QC
pdevis Jun 20, 2025
6979957
improve QC
pdevis Jun 20, 2025
b87e93e
improve QC
pdevis Jun 22, 2025
33da313
improve QC
pdevis Jun 22, 2025
d98643b
improve QC
pdevis Jun 23, 2025
705a3ee
improve QC
pdevis Jun 23, 2025
e4cd53f
improve QC
pdevis Jun 23, 2025
6a6544e
improve QC
pdevis Jun 23, 2025
e57d3a3
improve QC
pdevis Jun 23, 2025
ea2a82b
improve QC
pdevis Jun 23, 2025
f307dbd
improve QC
pdevis Jun 23, 2025
306c992
update calibration files
pdevis Jul 1, 2025
d29c74d
updates from joe
jriordan20 Jul 9, 2025
8bfbae5
Merge remote-tracking branch 'origin/postprocessing' into postprocessing
jriordan20 Jul 9, 2025
47eac87
add anomaly for non-valid periods
pdevis Jul 9, 2025
e2731c7
Merge branch 'postprocessing' of https://github.com/HYPERNETS/hyperne…
pdevis Jul 9, 2025
999ed07
generate csv
pdevis Jul 9, 2025
fa7ef10
generate csv
pdevis Jul 9, 2025
a7f9ac0
generate csv path
pdevis Jul 9, 2025
7da98fa
generate csv
pdevis Jul 9, 2025
b3fbeab
only GHNA v3 and WWUK
pdevis Jul 10, 2025
39a8b79
changes for Lyon
pdevis Jul 10, 2025
ff1533b
updates from joe
jriordan20 Aug 5, 2025
2573bd3
Merge remote-tracking branch 'origin/postprocessing' into postprocessing
jriordan20 Aug 5, 2025
7a8d603
New updates from joe
jriordan20 Aug 8, 2025
1467fba
new bounds
pdevis Sep 15, 2025
6e4eb8f
Merge branch 'postprocessing' of https://github.com/HYPERNETS/hyperne…
pdevis Sep 15, 2025
78eb8fd
update to newer versions for dependencies and running black linting o…
pdevis Sep 19, 2025
5171be5
improve site-specific qc
pdevis Oct 17, 2025
fcb7097
black linting
pdevis Oct 17, 2025
859ff49
fixing L2B
pdevis Oct 28, 2025
a5aade3
v2.4 cal files
pdevis Oct 29, 2025
59f9b8e
print sequences to process
pdevis Oct 31, 2025
4366399
ignore non-failing anomalies
pdevis Oct 31, 2025
a834c18
prints
pdevis Oct 31, 2025
cf4a080
try finding issue with x anomalies
pdevis Nov 1, 2025
f187c68
why still processing x anomalies?
pdevis Nov 1, 2025
7c9dedc
fixing "x" anomalies
pdevis Nov 1, 2025
0497659
test
pdevis Nov 1, 2025
29ce8b1
add bound files
pdevis Nov 1, 2025
bdcef64
fix misalignment None
pdevis Nov 1, 2025
02ba056
don't reprocess "ms" anomalies
pdevis Nov 3, 2025
01c41af
write exception
pdevis Nov 3, 2025
686e713
trying to fix anomalies
pdevis Nov 4, 2025
fc3af40
fixing anomalies
pdevis Nov 4, 2025
fc04c54
fix x handling
pdevis Nov 4, 2025
d10c42d
generate csv for most recent JAES period
jriordan20 Nov 5, 2025
81f273a
JAES csv generation for present period
jriordan20 Nov 5, 2025
3572929
Merge branch 'postprocessing' of https://github.com/HYPERNETS/hyperne…
jriordan20 Nov 5, 2025
01c4f54
diffferent check for anomalies
pdevis Nov 5, 2025
288355d
Merge branch 'postprocessing' of https://github.com/HYPERNETS/hyperne…
pdevis Nov 5, 2025
a63f044
print more info
pdevis Nov 5, 2025
ce54098
fix m anomaly handling
pdevis Nov 5, 2025
4b79b6c
updates from joe
jriordan20 Nov 5, 2025
b929025
Merge branch 'postprocessing' of https://github.com/HYPERNETS/hyperne…
jriordan20 Nov 5, 2025
0a1b735
new db remove tool
pdevis Nov 10, 2025
66f4eae
Merge branch 'postprocessing' of https://github.com/HYPERNETS/hyperne…
pdevis Nov 10, 2025
ebae392
remove L2B
pdevis Nov 10, 2025
d08b904
fix misalignment None
pdevis Nov 10, 2025
66c69ab
change paths to run on server
pdevis Nov 11, 2025
ae119c1
fix anomaly reporting
pdevis Nov 11, 2025
910b129
fix path
pdevis Nov 11, 2025
cc81cb3
add bounds files
pdevis Nov 11, 2025
1c53eee
reporting
pdevis Nov 14, 2025
e761f41
speed up remove product from db
pdevis Nov 14, 2025
80b9205
postprocessing docs
pdevis Nov 15, 2025
4e077b7
v2.3.0
pdevis Nov 15, 2025
2f635fa
remove .eggs
pdevis Nov 15, 2025
9233129
remove vscode launch
pdevis Nov 15, 2025
30c3f47
update python for readthedocs
pdevis Nov 15, 2025
07cce40
higher resolution images
pdevis Nov 15, 2025
34ee39d
improvements to L2B text
pdevis Nov 15, 2025
8c8f888
remove bad L2B data
pdevis Nov 15, 2025
1b82dc8
fix typo
pdevis Nov 15, 2025
7e15ea8
fix typo
pdevis Nov 15, 2025
5142e19
typo
pdevis Nov 15, 2025
9b6a68a
remove stopped sequence
pdevis Nov 15, 2025
4fe7945
fix datetime queries
pdevis Nov 15, 2025
e695ef2
query
pdevis Nov 15, 2025
548fe13
improve db removal
pdevis Nov 15, 2025
883dc00
JAES
pdevis Nov 15, 2025
8b7dc14
JSIT
pdevis Nov 15, 2025
6fbfa13
improve
pdevis Nov 15, 2025
27aa769
zenodo csvs
pdevis Nov 15, 2025
bfcd122
small improvements
pdevis Nov 17, 2025
fa114f6
changes from joe
jriordan20 Nov 19, 2025
7368a1e
updates from joe
jriordan20 Nov 23, 2025
5fb3120
new GHNa bounds file
pdevis Dec 9, 2025
ce5bf17
remove L2B script
pdevis Dec 9, 2025
4490fb1
fix remove L2B script
pdevis Dec 9, 2025
3a019a7
test
pdevis Dec 9, 2025
16e46e1
fix
pdevis Dec 9, 2025
a7de809
fix
pdevis Dec 9, 2025
7b8fca4
fix L2B bug
pdevis Dec 9, 2025
30be061
fix m anomaly reprocessing
pdevis Dec 9, 2025
190dafe
fix message
pdevis Jan 27, 2026
614bf55
adding calibration date
pdevis Jan 27, 2026
c553d95
small fix to messaging
pdevis Feb 5, 2026
4af8ebf
updates for pydirectional
jriordan20 Apr 27, 2026
b1d5750
Merge branch 'postprocessing' of https://github.com/HYPERNETS/hyperne…
jriordan20 Apr 27, 2026
6193368
Merge branch 'main' of https://github.com/HYPERNETS/hypernets_process…
pdevis Jul 21, 2026
183ab33
updates to use scene_forge
pdevis Aug 12, 2026
ed6c253
Merge branch 'postprocessing' of https://github.com/HYPERNETS/hyperne…
pdevis Aug 12, 2026
3c0bf15
clean up datetime timezones for timestamps
pdevis Aug 18, 2026
37b4751
final joe updates
jriordan20 Aug 18, 2026
19e22ed
Merge branch 'postprocessing' of https://github.com/HYPERNETS/hyperne…
jriordan20 Aug 18, 2026
e9bd7a6
start reorganising post-processing
pdevis Aug 18, 2026
01f9702
Merge branch 'postprocessing' of https://github.com/HYPERNETS/hyperne…
pdevis Aug 18, 2026
e794d73
reorganise postprocessing
pdevis Aug 18, 2026
cc1b8c2
Merge branch 'main' of https://github.com/HYPERNETS/hypernets_process…
pdevis Aug 18, 2026
b8432f2
calibration files v2.5
pdevis Aug 19, 2026
1291176
improve clear_sky models
pdevis Aug 19, 2026
ec4406b
server changes
pdevis Aug 19, 2026
c13287a
updates in generate csv
jriordan20 Aug 19, 2026
86bec03
merge
pdevis Aug 19, 2026
6e38b31
Merge branch 'postprocessing' of https://github.com/HYPERNETS/hyperne…
jriordan20 Aug 19, 2026
8777414
Merge branch 'postprocessing' of https://github.com/HYPERNETS/hyperne…
jriordan20 Aug 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,6 @@ docs/sphinx/content/API
/hypernets_processor/etc/working_directory.txt
/hypernets_processor/etc/processor.config
/data/calibration_files_ascii
.eggs/
.vscode/
__pycache__/
2 changes: 1 addition & 1 deletion .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ version: 2
build:
os: ubuntu-22.04
tools:
python: "3.9"
python: "3.12"

# Build documentation in the docs/ directory with Sphinx
sphinx:
Expand Down
9 changes: 9 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"python-envs.pythonProjects": [
{
"path": ".",
"envManager": "ms-python.python:conda",
"packageManager": "ms-python.python:conda"
}
]
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
107 changes: 65 additions & 42 deletions docs/sphinx/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@

import os
import sys
sys.path.insert(0, os.path.abspath('sphinx'))

sys.path.insert(0, os.path.abspath("sphinx"))


def run_apidoc(_):
Expand All @@ -37,15 +38,19 @@ def run_apidoc(_):
try:
# Sphinx 1.7+
from sphinx.ext import apidoc

apidoc.main(argv)
except ImportError:
# Sphinx 1.6 (and earlier)
from sphinx import apidoc

argv.insert(0, apidoc.__file__)
apidoc.main(argv)


def setup(app):
app.connect('builder-inited', run_apidoc)
app.connect("builder-inited", run_apidoc)


# -- General configuration ------------------------------------------------

Expand All @@ -57,41 +62,41 @@ def setup(app):
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.mathjax',
"sphinx.ext.autodoc",
"sphinx.ext.mathjax",
]

# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
templates_path = ["_templates"]

# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'
source_suffix = ".rst"

# The encoding of source files.
#
# source_encoding = 'utf-8-sig'

# The master toctree document.
master_doc = 'index'
atbd = 'atbd'
userguide = 'userguide'
master_doc = "index"
atbd = "atbd"
userguide = "userguide"

# General information about the project.
project = u'hypernets_processor'
copyright = u'2020, Hypernets Project Team'
author = u'Hypernets Project Team'
project = "hypernets_processor"
copyright = "2020, Hypernets Project Team"
author = "Hypernets Project Team"

# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = u'2.0'
version = "2.0"
# The full version, including alpha/beta/rc tags.
release = u'2.0'
release = "2.0"

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down Expand Up @@ -134,7 +139,7 @@ def setup(app):
# show_authors = False

# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
pygments_style = "sphinx"

# A list of ignored prefixes for module index sorting.
# modindex_common_prefix = []
Expand All @@ -151,7 +156,7 @@ def setup(app):
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'sphinx_rtd_theme'
html_theme = "sphinx_rtd_theme"

# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
Expand Down Expand Up @@ -185,7 +190,7 @@ def setup(app):
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
html_static_path = ["_static"]

# html_context = {
# 'css_files': [
Expand Down Expand Up @@ -271,36 +276,43 @@ def setup(app):
# html_search_scorer = 'scorer.js'

# Output file base name for HTML help builder.
htmlhelp_basename = 'hypernets_processordocs'
htmlhelp_basename = "hypernets_processordocs"

# -- Options for LaTeX output ---------------------------------------------

latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',

# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',

# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',

# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
}

# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(atbd, 'hypernets_processor_atbd.tex', u'Hypernets Processor Algorithm Theoretical Basis Document',
u'Hypernets Project Team', 'manual'),
(userguide, 'hypernets_processor_userguide.tex', u'Hypernets Processor User Guide',
u'Hypernets Project Team', 'manual'),
(
atbd,
"hypernets_processor_atbd.tex",
"Hypernets Processor Algorithm Theoretical Basis Document",
"Hypernets Project Team",
"manual",
),
(
userguide,
"hypernets_processor_userguide.tex",
"Hypernets Processor User Guide",
"Hypernets Project Team",
"manual",
),
]

# The name of an image file (relative to this directory) to place at the top of
Expand Down Expand Up @@ -341,8 +353,13 @@ def setup(app):
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'hypernets_processor', u'hypernets_processor Documentation',
[author], 1)
(
master_doc,
"hypernets_processor",
"hypernets_processor Documentation",
[author],
1,
)
]

# If true, show URL addresses after external links.
Expand All @@ -356,9 +373,15 @@ def setup(app):
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'hypernets_processor', u'Hypernets Processor User Guide',
author, 'hypernets_processor', 'One line description of project.',
'Miscellaneous'),
(
master_doc,
"hypernets_processor",
"Hypernets Processor User Guide",
author,
"hypernets_processor",
"One line description of project.",
"Miscellaneous",
),
]

# Documents to append as an appendix to all manuals.
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/sphinx/content/atbd/processing/NDVI_JSIT.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/sphinx/content/atbd/processing/NDVI_LOBE.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
139 changes: 131 additions & 8 deletions docs/sphinx/content/atbd/processing/post_processing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,136 @@

.. _post_processing:

Post Processing - Site-specific Quality Checks
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Post Processing - Site-specific Quality checks
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Once the L2A datasets have been produced, a final set of site-specific quality checks and masks are
applied. The site-specific quality checks and masks are determined after inspection of the first months of
data in consultation of the site owners. The resulting masks are applied to the L2A
dataset and stored as L2B. The same masks are also applied to the L1B datasets and stored as L1D. Only
the L1D and L2B data will be distributed to satellite validation users.
The LANDHYPERNET L2A data still contains erroneous sequences which are not
suitable for Cal/Val, and thus not suitable for public distribution.
The standard L2A processing as described in the previous sections applies general quality checks to the
data. However, no site-specific QC has been applied in the processing to L2A.

These post-processing quality checks are still under development and will be detailed here in the future.
To ensure the highest quality of the L2A data over the Cal/Val sites, additional
quality checks are applied to the data. This is done in two stages:

1. An offline analysis is performed for each deployment period at each site, to identify
periods with known issues (e.g. due to site heterogeneity, bad deployment conditions,
unsuitable viewing or solar angles, etc). Based on this offline analysis, a range of config
values are determined for each site and deployment period, which are then stored in the job.config file (see :ref:`config`).

2. During processing to L2B, the site-specific quality checks are applied to the data,
using the config values determined in the offline analysis. Only data suitable for Cal/Val
are retained in the L2B data.

Flags Set in the L2A Data
-------------------------

Data flagged with a critical issue in L2A and L1B data are removed. Specifically, the following flags are removed (see also :ref:`using_hypernets`)::

bad_flags=["pt_ref_invalid", "half_of_scans_masked", "not_enough_dark_scans", "not_enough_rad_scans",
"not_enough_irr_scans", "no_clear_sky_irradiance", "variable_irradiance",
"half_of_uncertainties_too_big", "discontinuity_VNIR_SWIR", "single_irradiance_used"]

See :ref:`flags` for more information on these flags.

Sequences Outside Any Valid Deployment Date Ranges
--------------------------------------------------

The datetime of the sequence being processed is simply checked against the valid deployment ranges
(see https://www.landhypernet.org.uk/site_descriptions for these date ranges for each site).

Periods with Bad Deployment Conditions
--------------------------------------

Such date/time/datetime periods can be revealed as part of the offline analysis, or can be known by the site owner
due to expert knowledge about the site, knowledge about the deployment, etc.

Periods with Site Heterogeneity
-------------------------------

Homogeneous periods are defined using NDVI at vegetated sites. We first define a reference period through manual analysis
of images from sites and conversations with site owners and calculate the standard deviation of the NDVI in this period.
The homogeneous periods are then defined as periods where a rolling standard deviation of NDVI is below 1.5 times the reference standard deviation.
Any measurements outside these homogeneous periods are removed.

.. figure:: NDVI_LOBE.png
:width: 600px
:align: center
:alt: NDVI timeseries for LOBE April 2025 – August 2025

(Top) NDVI timeseries for LOBE April 2025 – August 2025. Green dots show NDVI of a measurement; blue line shows rolling average of 100 measurements with rolling standard deviation as shaded region. (Bottom) Rolling standard deviation of NDVI timeseries; red, orange, and yellow lines show 1, 2, and 3 times the reference standard deviation, respectively, where the reference is defined as the standard deviation of a known homogeneous period (here July 2025).

Unsuitable Viewing Zenith & Azimuth Angle
-----------------------------------------

Such angles with tolerances can be revealed as part of the offline analysis (e.g. see Figure below), or can be known by the site owner due to expert site knowledge, knowledge about the deployment, etc.
To mask out shadows, there is also the option to specify the relative azimuth angle (shadows typically at 0 degrees) and to select all zenith angles smaller than the solar zenith angle.

.. figure:: NDVI_JSIT.png
:width: 600px
:align: center
:alt: NDVI Timeseries for JSIT Jan – Jul 2025 coloured by viewing zenith angle

NDVI Timeseries for JSIT Jan – Jul 2025 coloured by viewing zenith angle, lower NDVI can be seen close to nadir (0 and 5 degrees). Close to nadir the sensor is looking at bare soil next to the mast and this data is removed in L2B.

Unsuitable Sun Zenith Angle
--------------------------

Any measurements with a solar zenith angle above 60 degrees are removed. This value is changed for some high-latitude sites where very low solar zeniths occur; these are defined in offline analysis.

Poorly Performing Wavelength Ranges
-----------------------------------

Wavelength ranges with known issues (such as calibration failures) are masked.

.. figure:: CLEAR_SKY_JSIT.png
:width: 600px
:align: center
:alt: Clear sky check plot for JSIT irradiance measurements

Clear sky check plot for JSIT irradiance measurements on 2024-05-17 at 9:00 UTC. There is an erroneous peak in the measured irradiance around 585 nm.

A Note on Clear-Sky Modelling
-----------------------------

Site-specific clear sky models are generated using the LibRadtran Radiative Transfer software. The surface was set to be Lambertian with reflectance equal to the mean L2A spectral reflectance for the specific site at a viewing zenith angle of 20 degrees. Atmospheric properties were taken from ERA5 reanalysis data averaged over 2023. One set of models was run with no aerosols, and one set of models was run with the median aerosol optical depth taken from CAMS reanalysis data over the site in 2023. BOA irradiance calculations (including direct and diffuse contributions) were then performed using RT for a range of different solar zenith angles (0 to 80 in steps of 10). The altitude for each simulation was also set specifically from the Copernicus DEM, extracted at each site. During analysis, models are interpolated to the solar zenith angle of the measurements.

Misalignment of the HYPSTAR Sensor
----------------------------------

Sequences with erroneous irradiances were spotted with the likely cause being a slight misalignment of the HYPSTAR sensor to the vertical during the irradiance measurements, causing a trend in the ratio between a clear sky model and the irradiance measurements throughout the day. The observed ratio between the clear sky model with median aerosols (described above) and the irradiance measurements is used to fit a modelled ratio. The modelled ratio has the following free parameters: misalignment viewing zenith angle (the tilt from the vertical); misalignment viewing azimuth angle (the azimuthal direction of the tilt with 0 as North); offset (to account for errors in the clear sky model and drift in the calibration). These free parameters are fit using a Markov Chain Monte Carlo (MCMC) process. The data is then normalised using a correction factor so that the average irradiance is the same as prior to the misalignment correction.

.. figure:: MISALIGNMENT_MODEL.png
:width: 600px
:align: center
:alt: Illustration of the misalignment modelling results

Illustration of the misalignment modelling results. Data points show data from JAES May-Sep 2023 in bins of time-of-day. Errorbars show standard deviation within the bin. Top: observed ratio of clear sky model and irradiance measurements, which shows some unexpected variability during the day. 2nd panel: modelled ratio, allowing for viewing zenith and azimuth angle to be pointed not exactly at nadir (also includes an offset to account for mismatches between model and observations). 3rd panel: residual between observations and models. 4th panel: normalised corrected ratios (by using the modelled misalignment, but not applying offset). Bottom: solar zenith angle in each bin.

More Stringent Clear Sky Check
------------------------------

The improved clear sky consists of discarding any sequences where the measured irradiances (after correction for misalignment) are either more than 5% higher than the model without aerosols at 550 nm, or more than 10% smaller than the clear sky model with median aerosols. Note that various thresholds and aerosol loads were experimented with, and this combination was found to hold the best trade-off between masking erroneous sequences and wrongfully masking valid sequences.

.. figure:: CLOUDY_SCENE_LOBE.png
:width: 600px
:align: center
:alt: Example of cloudy scene from LOBE

Example of cloudy scene from LOBE which passed L2A QC. More stringent L2B site-specific cloud checks correctly identify this as a cloudy scene.

Unsuitable Reflectances for Specific Site
-----------------------------------------

Based on offline analysis, realistic upper and lower bounds on the reflectance values are provided in bins along multiple dimensions (typically solar zenith angle, viewing zenith angle, relative azimuth angle, and optionally temporal bins), to allow for angular variability due to BRDF effects (and optionally seasonal effects). The bounds themselves come from binning the data within these bins, and then iteratively removing outliers (as compared to other values in the bin, as well as fits to the overall angular and temporal variability).

.. figure:: REFLECTANCE_BOUNDS_GHNA.png
:width: 600px
:align: center
:alt: Illustration of the reflectance bounds for GHNA May 2022 – Oct 2023

Illustration of the reflectance bounds for GHNA May 2022 – Oct 2023. The bounds are shown in blue, data which pass in green, and data which are removed in red.

Other Unusual Conditions
------------------------

Any remaining issues, due to unusual conditions that occur occasionally, can be omitted by manually specifying the sequence ID.
Loading