noaa-oar-arl / monetio

The Model and ObservatioN Evaluation Tool I/O package
https://monetio.readthedocs.io
MIT License
17 stars 20 forks source link

TEMPO NO2 reader #188

Closed blychs closed 3 weeks ago

blychs commented 1 month ago

This is a tempo reader based on the TROPOMI NO2 reader, set up for compatibility with MELODIES-MONET. It has been tested with locally downloaded data, using MONET plotting capabilities. Pairing (at the MONET or MELODIES-MONET levels) has not been programmed in yet. A test case for this, with automatic downloads, would require an earthdata user --which would also require an additional dependency (namely, earthdata). If that is acceptable, I could set it up. Pablo

zmoon commented 1 month ago

@blychs , alternatively, if you have an example file, we could place it here: https://csl.noaa.gov/groups/csl4/modeldata/melodies-monet/data/example_observation_data/satellite/

blychs commented 1 month ago

@blychs , alternatively, if you have an example file, we could place it here: https://csl.noaa.gov/groups/csl4/modeldata/melodies-monet/data/example_observation_data/satellite/

I do have files for this. Let me know how to give them to you so that they can be uploaded (I would just need to get rid of unnecessary variables so that we can have a full scan).

zmoon commented 1 month ago

I do have files for this. Let me know how to give them to you so that they can be uploaded (I would just need to get rid of unnecessary variables so that we can have a full scan).

Sounds good. I'll send an email.

blychs commented 1 month ago

I found a bug in my code, which is with the application of the quality flags, maximum and minimum. i. e., I'm asking it to compare the values with the max, min or (for the quality_flag) qa_treshold. However, this breaks if the value is NaN, due to the way the comparison is made. It should be an easy fix, which I'll hopefully update today.

blychs commented 1 month ago

Those bugs should be fixed now. I also added options for the rest of the possible variables a user might want, including everything needed to apply air mass factors and scattering weights and a pressure calculations. This means that the changes are quite large, and might require careful checking. I tried my code with all variables and it seems to be working fine, and the pre-commit hooks are passing. I don't really know how to run the linter though, should I just install pylint and give it a go?

zmoon commented 1 month ago

the pre-commit hooks are passing. I don't really know how to run the linter though

Linting is included in the pre-commit hooks. But if you do want to run it (flake8) individually sometime:

pre-commit run flake8 --all-files

or

pre-commit run flake8 --file some/path.py