Filtering¶
Satellite filtering system for narrowing satellite catalogs.
Filterer¶
Filterer ¶
Applies a chain of filter functions to a satellite list.
Filters are combined with AND logic: a satellite must pass every filter to be included in the output. Supports method chaining.
Example::
filterer = (
Filterer()
.add_filter(filter_name_contains("STARLINK"))
.add_filter(filter_orbit_is("leo"))
)
filtered = filterer.apply_filters(satellites)
Source code in src/sopp/filtering/filterer.py
Preset Filters¶
Built-in satellite filter functions.
Each function returns a predicate (Satellite) -> bool suitable for
use with :class:~sopp.filtering.filterer.Filterer.
Classes¶
Functions¶
filter_frequency ¶
filter_frequency(
observation_frequency: FrequencyRange,
) -> Callable[[Satellite], bool]
Include satellites whose downlink frequency overlaps the observation band.
Satellites with no frequency data are included (erring on the side of caution). Inactive transmissions are excluded.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
observation_frequency
|
FrequencyRange
|
The observation frequency range. |
required |
Source code in src/sopp/filtering/presets.py
filter_name_regex ¶
filter_name_regex(
regex: str,
) -> Callable[[Satellite], bool]
Include satellites whose name matches a regex pattern.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
regex
|
str
|
Regular expression to match against satellite names. |
required |
Source code in src/sopp/filtering/presets.py
filter_name_contains ¶
filter_name_contains(
substring: str,
) -> Callable[[Satellite], bool]
Include satellites whose name contains the given substring.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
substring
|
str
|
Substring to search for in satellite names. |
required |
Source code in src/sopp/filtering/presets.py
filter_name_does_not_contain ¶
filter_name_does_not_contain(
substring: str,
) -> Callable[[Satellite], bool]
Exclude satellites whose name contains the given substring.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
substring
|
str
|
Substring to exclude from satellite names. |
required |
Source code in src/sopp/filtering/presets.py
filter_name_is ¶
filter_name_is(
substring: str,
) -> Callable[[Satellite], bool]
Include only satellites whose name matches exactly.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
substring
|
str
|
Exact name to match. |
required |
Source code in src/sopp/filtering/presets.py
filter_orbit_is ¶
filter_orbit_is(
orbit_type: str,
) -> Callable[[Satellite], bool]
Include satellites in a specific orbit regime.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
orbit_type
|
str
|
One of 'leo', 'meo', or 'geo'. |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If orbit_type is not recognized. |