pyampp.gxbox.gx_fov2box

Attributes

app

Classes

Fov2BoxConfig

TransitionPlan

ResumePreparedState

ObservationPreparedState

PreparedRunState

PreparedTransitionInputs

NasStageResult

GenChrStageResult

GenStageResult

StageSaveContext

Functions

main(, coords, float]] = typer.Option, hpc, hgc, hgs, ...)

Module Contents

pyampp.gxbox.gx_fov2box.app[source]
class pyampp.gxbox.gx_fov2box.Fov2BoxConfig[source]
time: str | None[source]
coords: Tuple[float, float] | None[source]
hpc: bool[source]
hgc: bool[source]
hgs: bool[source]
cea: bool[source]
top: bool[source]
box_dims: Tuple[int, int, int] | None[source]
dx_km: float[source]
pad_frac: float[source]
data_dir: str[source]
gxmodel_dir: str[source]
nlfff_lib: str | None[source]
download_backend: str[source]
drms_sequential: bool[source]
force_download: bool[source]
entry_box: str | None[source]
save_empty_box: bool[source]
save_potential: bool[source]
save_bounds: bool[source]
save_nas: bool[source]
save_gen: bool[source]
save_chr: bool[source]
stop_after: str | None[source]
empty_box_only: bool[source]
potential_only: bool[source]
nlfff_only: bool[source]
generic_only: bool[source]
use_potential: bool[source]
skip_lines: bool[source]
center_vox: bool[source]
reduce_passed: int | None[source]
euv: bool[source]
uv: bool[source]
sfq: bool[source]
observer_name: str[source]
fov_xc: float | None[source]
fov_yc: float | None[source]
fov_xsize: float | None[source]
fov_ysize: float | None[source]
square_fov: bool[source]
jump2potential: bool[source]
jump2bounds: bool[source]
jump2nlfff: bool[source]
jump2lines: bool[source]
jump2chromo: bool[source]
rebuild: bool[source]
rebuild_from_none: bool[source]
info: bool[source]
reproject_algorithm: str[source]
reproject_scan: str | None[source]
refmaps_path: Tuple[str, Ellipsis] | None = None[source]
class pyampp.gxbox.gx_fov2box.TransitionPlan[source]
target_stage: str[source]
jump_chain: Tuple[str, Ellipsis] | None[source]
active_jump: str | None[source]
goto_lines: bool[source]
goto_chromo: bool[source]
class pyampp.gxbox.gx_fov2box.ResumePreparedState[source]
base_group: Dict[str, Any][source]
refmaps: Dict[str, Any][source]
base_bz_arr: numpy.ndarray[source]
base_ic_arr: numpy.ndarray[source]
bottom_bz_data: numpy.ndarray[source]
projection_tag: str[source]
base: str[source]
dr3: numpy.ndarray[source]
class pyampp.gxbox.gx_fov2box.ObservationPreparedState[source]
obs_time: astropy.time.Time[source]
maps: Dict[str, Any][source]
base_group: Dict[str, Any][source]
refmaps: Dict[str, Any][source]
base_bz_arr: numpy.ndarray[source]
base_ic_arr: numpy.ndarray[source]
bottom_bz_data: numpy.ndarray[source]
vert_current_error: str | None[source]
projection_tag: str[source]
base: str[source]
dr3: numpy.ndarray[source]
observer_metadata: Dict[str, Any][source]
class pyampp.gxbox.gx_fov2box.PreparedRunState[source]
obs_time: astropy.time.Time[source]
maps: Dict[str, Any] | None[source]
base_group: Dict[str, Any][source]
refmaps: Dict[str, Any][source]
base_bz_arr: numpy.ndarray[source]
base_ic_arr: numpy.ndarray[source]
bottom_bz_data: numpy.ndarray[source]
vert_current_error: str | None[source]
projection_tag: str[source]
base: str[source]
dr3: numpy.ndarray[source]
observer_metadata: Dict[str, Any] | None[source]
lineage_root: str[source]
lineage_marker: str[source]
entry_stage_for_marker: str[source]
entry_corona: Dict[str, Any] | None = None[source]
entry_model: str | None = None[source]
entry_lines: Dict[str, Any] | None = None[source]
class pyampp.gxbox.gx_fov2box.PreparedTransitionInputs[source]
active_jump: str | None[source]
goto_lines: bool[source]
goto_chromo: bool[source]
entry_lines: dict | None[source]
pot_box: dict | None[source]
bnd_box: dict | None[source]
nlfff_box: dict | None[source]
class pyampp.gxbox.gx_fov2box.NasStageResult[source]
nlfff_box: dict[source]
finalized: bool[source]
class pyampp.gxbox.gx_fov2box.GenChrStageResult[source]
finalized: bool[source]
class pyampp.gxbox.gx_fov2box.GenStageResult[source]
stage_prefix: str[source]
lines: dict | None[source]
finalized: bool[source]
class pyampp.gxbox.gx_fov2box.StageSaveContext[source]
cfg: Fov2BoxConfig[source]
prepared_run: PreparedRunState[source]
execute_cmd: str[source]
out_dir: pathlib.Path[source]
default_grid: dict[source]
empty_grid: numpy.ndarray[source]
produced: List[pathlib.Path][source]
pyampp.gxbox.gx_fov2box.main(time: str | None = typer.Option(None, '--time', help='Observation time ISO (e.g. 2024-05-12T00:00:00)'), coords: Tuple[float, float] | None = typer.Option(None, '--coords', help='Center coords (x y)'), hpc: bool = typer.Option(False, '--hpc/--no-hpc', help='Use helioprojective coordinates'), hgc: bool = typer.Option(False, '--hgc/--no-hgc', help='Use heliographic carrington coordinates'), hgs: bool = typer.Option(False, '--hgs/--no-hgs', help='Use heliographic stonyhurst coordinates'), cea: bool = typer.Option(False, '--cea', help='Use CEA basemap projection'), top: bool = typer.Option(False, '--top', help='Use TOP-view basemap projection'), box_dims: Tuple[int, int, int] | None = typer.Option(None, '--box-dims', help='Box dims in pixels'), dx_km: float = typer.Option(1400.0, '--dx-km', help='Voxel size in km'), pad_frac: float = typer.Option(0.1, '--pad-frac', help='Padding fraction for FOV'), data_dir: str = typer.Option(DOWNLOAD_DIR, '--data-dir', help='SDO data directory'), gxmodel_dir: str = typer.Option(GXMODEL_DIR, '--gxmodel-dir', help='GX model output directory'), nlfff_lib: str | None = typer.Option(None, '--nlfff-lib', help='Override the WWNLFFFReconstruction shared library path for NAS and GEN stages'), download_backend: str | None = typer.Option(None, '--download-backend', help='Compatibility override: explicitly set downloader backend to fido or drms'), use_fido: bool = typer.Option(False, '--use-fido', help='Use the legacy SunPy/Fido downloader instead of the default DRMS backend'), drms_sequential: bool = typer.Option(False, '--drms-sequential', help='Force DRMS downloads to single-worker mode for maximum reliability'), force_download: bool = typer.Option(False, '--force-download', help='Bypass local cache hits and redownload requested SDO products'), entry_box: str | None = typer.Option(None, '--entry-box', help='Existing HDF5/SAV box'), save_empty_box: bool = typer.Option(False, '--save-empty-box', help='Save NONE stage'), save_potential: bool = typer.Option(False, '--save-potential', help='Save POT stage'), save_bounds: bool = typer.Option(False, '--save-bounds', help='Save BND stage'), save_nas: bool = typer.Option(False, '--save-nas', help='Save NAS stage'), save_gen: bool = typer.Option(False, '--save-gen', help='Save NAS.GEN stage'), save_chr: bool = typer.Option(False, '--save-chr', help='Save NAS.CHR stage'), stop_after: str | None = typer.Option(None, '--stop-after', help='Stop after stage (dl/none/pot/bnd/nas/gen/chr)'), empty_box_only: bool = typer.Option(False, '--empty-box-only', help='Stop after NONE'), potential_only: bool = typer.Option(False, '--potential-only', help='Stop after POT'), nlfff_only: bool = typer.Option(False, '--nlfff-only', help='Stop after NAS'), generic_only: bool = typer.Option(False, '--generic-only', help='Stop after NAS.GEN'), use_potential: bool = typer.Option(False, '--use-potential', help='Skip NLFFF'), skip_lines: bool = typer.Option(False, '--skip-lines', help='Skip GEN line computation and go directly to CHR'), center_vox: bool = typer.Option(False, '--center-vox', help='Trace lines through voxel centers'), reduce_passed: int | None = typer.Option(None, '--reduce-passed', min=0, max=3, help='Expert line tracing reduction bitmask: 0|1|2|3 (overrides --center-vox)'), euv: bool = typer.Option(False, '--euv', help='Download AIA EUV maps'), uv: bool = typer.Option(False, '--uv', help='Download AIA UV maps'), sfq: bool = typer.Option(False, '--sfq', help='Use SFQ disambiguation (method=0)'), observer_name: str = typer.Option('earth', '--observer-name', help='Observer identifier stored in output metadata'), fov_xc: float | None = typer.Option(None, '--fov-xc', help='Observer/image FOV center X in arcsec'), fov_yc: float | None = typer.Option(None, '--fov-yc', help='Observer/image FOV center Y in arcsec'), fov_xsize: float | None = typer.Option(None, '--fov-xsize', help='Observer/image FOV width in arcsec'), fov_ysize: float | None = typer.Option(None, '--fov-ysize', help='Observer/image FOV height in arcsec'), square_fov: bool = typer.Option(False, '--square-fov', help='Observer/image FOV is constrained square'), jump2potential: bool = typer.Option(False, '--jump2potential', help='Jump to POT'), jump2bounds: bool = typer.Option(False, '--jump2bounds', help='Jump to BND'), jump2nlfff: bool = typer.Option(False, '--jump2nlfff', help='Jump to NAS'), jump2lines: bool = typer.Option(False, '--jump2lines', help='Jump to GEN'), jump2chromo: bool = typer.Option(False, '--jump2chromo', help='Jump to CHR'), rebuild: bool = typer.Option(False, '--rebuild', help='Recompute from NONE using entry-box parameters'), rebuild_from_none: bool = typer.Option(False, '--rebuild-from-none', help='Start from entry-box NONE-equivalent and run forward'), info: bool = typer.Option(False, '--info', help='Show resolved defaults and exit'), reproject_algorithm: str = typer.Option('adaptive', '--reproject-algorithm', help="Reprojection algorithm for HMI cutouts onto model base grid: 'adaptive' (default, matches IDL wcs_remap/ssaa behaviour), 'exact' (flux-conserving, slower), or 'interpolation' (bilinear)"), reproject_scan: str | None = typer.Option(None, '--reproject-scan', help="Batch-run OBS->NONE once per reprojection algorithm. Use 'all' or a comma-separated list such as 'adaptive,exact,interpolation'. Each run writes to a gxmodel-dir/reproject_<algorithm> subdirectory."), refmaps_path: List[str] | None = typer.Option(None, '--refmaps-path', '--refmap-path', help='Directory of external FITS reference maps to add to model refmaps. May be repeated.')) None[source]