pytroll / pytroll/satpy

Calculate solar angles if requested on load()

Open
#77 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement hacktoberfest
Dominant language
Python
Stars
1.2k
Forks
335
Avg merge
1d 18h
Merged PRs (30d)
10

Description

Some of the readers can already return Solar zenith/azimuth (and satellite zenith) angles if requested in the load() call. In these cases the data are readily available in the files, but it would be awesome to have them available for all the readers. At least the Solar zenith angles can be calculated using pyorbital, and are already used in many composites for adjusting illumination. The illumination correction is done using modifiers for each channel, and I can't see if that mechanism can be used to blend two channels together.

An alternate solution I see for the DayNightCompositor is to make the solar_zenith_angle an optional prerequisite and calculate the angles if they are not available. The upside off this method is that the memory footprint is somewhat lower, as the angles are present only when the composite is generated, but then again the angles would need to be cached for other composites using DayNightCompositor.

In any case, the load()-able procedural/virtual/implicit/indirect/deducible/inferred// datasets would be quite a useful feature.

Any thoughts?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the readers' load() path and DayNightCompositor, then inspect how modifiers handle channel data and how pyorbital could provide solar zenith angles. Done means the project has an agreed mechanism for requesting computed datasets and makes the required angles available to relevant composites without unnecessary memory use.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.