StormScopeGOES¶
NANWC202680 GBNVIDIAPyTorch
Import path: earth2studio.models.px.StormScopeGOES
View source on GitHub View install commands
Documentation¶
Bases: StormScopeBase
StormScope model forecasting GOES data on the HRRR grid.
This model supports multiple variants at different spatiotemporal resolutions,
selected by passing model_name to load_model (default: "3km_10min").
The primary focus is CONUS nowcasting at 3km resolution; coarser 6km
nearcasting variants are retained as
legacy checkpoints. Variant names are semantic (<resolution>_<cadence>):
3km_10min: 3km resolution, 10 minute timestep (CONUS nowcasting)6km_1hr: 6km resolution, 60 minute timestep (legacy nearcasting)
Use list_available_models to inspect the variants in a given package
(including any added after this release). Legacy training-style names are still
accepted as aliases.
Variants whose input cadence is finer than their output cadence use a sliding window of input timesteps and predict one output timestep; others use a single input timestep and predict one output timestep.
Parameters:
-
model_spec(list[dict[str, Any]]) –Sequence of stage specifications; see
StormScopeBase. -
means(Tensor) –Per-variable mean for normalization, shape [1, C, 1, 1].
-
stds(Tensor) –Per-variable std for normalization, shape [1, C, 1, 1].
-
latitudes(Tensor) –Latitudes of the grid, expected shape [H, W].
-
longitudes(Tensor) –Longitudes of the grid, expected shape [H, W].
-
variables(ndarray, default:array(['abi01c', 'abi02c', 'abi03c', 'abi07c', 'abi08c', 'abi09c', 'abi10c', 'abi13c'])) –GOES input variables. Default is ["abi01c", "abi02c", "abi03c", "abi07c", "abi08c", "abi09c", "abi10c", "abi13c"].
-
conditioning_variables(ndarray, default:array(['z500'])) –Auxiliary conditioning variables. Default is ["z500"].
-
conditioning_means(Tensor | None, default:None) –Means to normalize any external conditioning data. Default is None.
-
conditioning_stds(Tensor | None, default:None) –Stds to normalize any external conditioning data. Default is None.
-
conditioning_data_source(Any | None, default:None) –Data source for external conditioning. Default is None.
-
sampler_args(dict[str, Any] | None, default:{'num_steps': 100, 'S_churn': 10}) –Default sampler arguments passed to the diffusion sampler. Default is {"num_steps": 100, "S_churn": 10}.
-
input_times(ndarray, default:array([timedelta64(0, 'h')])) –Input timesteps, of type timedelta64. Default is [0 m] (i.e., the current time).
-
output_times(ndarray, default:array([timedelta64(1, 'h')])) –Output timesteps, of type timedelta64. Default is [60 m] (i.e., 1 hour from the current time).
-
y_coords(ndarray | None, default:None) –Y coordinates of the grid, expected shape [H, W]. Default is None, in which case the model uses the enumerated indices inferred from the latitude and longitude grid shapes.
-
x_coords(ndarray | None, default:None) –X coordinates of the grid, expected shape [H, W]. Default is None, in which case the model uses the enumerated indices inferred from the latitude and longitude grid shapes.
-
input_interp_max_dist_km(float, default:12.0) –Maximum distance in kilometers for nearest neighbor interpolation of input data. Points beyond this distance are masked as invalid. Default is 12.0.
-
conditioning_interp_max_dist_km(float, default:26.0) –Maximum distance in kilometers for nearest neighbor interpolation of conditioning data. Points beyond this distance are masked as invalid. Default is 26.0.
Note
To have a unified coordinate system over CONUS for convenience, the model uses the HRRR grid. As a result, there are portions of the domain which go beyond the extent of the GOES-East data, so these portions are masked as invalid (set to NaN).
__call__ ¶
create_iterator ¶
Creates an iterator to perform time-integration of the prognostic model.
Parameters:
-
x(Tensor) –Input tensor.
-
coords(CoordSystem) –Input coordinate system.
Yields:
load_default_package
classmethod
¶
Load the default StormScope package from Hugging Face.
load_model
classmethod
¶
load_model(
package: Package,
model_name: Literal[
"3km_10min", "6km_1hr"
] = "3km_10min",
conditioning_data_source: (
DataSource | ForecastSource | None
) = None,
amp: bool = True,
compile: bool = False,
) -> PrognosticModel
Load model from package.
Parameters:
-
package(Package) –Package to load model from
-
model_name(Literal['3km_10min', '6km_1hr'], default:'3km_10min') –Variant to load, by default
"3km_10min"(the recommended CONUS nowcasting variant). Available variants (seelist_available_models):"3km_10min": 3km resolution, 10 minute timestep (CONUS nowcasting)"6km_1hr": 6km resolution, 60 minute timestep (legacy nearcasting)
Legacy training-style names are accepted as aliases.
-
conditioning_data_source(DataSource | ForecastSource | None, default:None) –Data source to use for conditioning, by default None.
-
amp(bool, default:True) –Enable automatic mixed precision (autocast) for the sampler's network forward passes. Default is True.
-
compile(bool, default:False) –Compile each staged expert with
torch.compile("reduce-overhead"). Default is False.
Returns:
-
PrognosticModel–Instantiated StormScopeGOES model