Skip to content

Ilijadev#8

Open
julienboussard wants to merge 11 commits intomainfrom
ilijadev
Open

Ilijadev#8
julienboussard wants to merge 11 commits intomainfrom
ilijadev

Conversation

@julienboussard
Copy link
Collaborator

No description provided.

…e modules, used poetry

- Updated parameter formatting in expParams and dataParams classes for better alignment and clarity.
- Enhanced comments and documentation for various parameters in expParams, dataParams, and other classes.
- Cleaned up unnecessary whitespace and improved code formatting in savar_dataset.py, plot_model_output.py, generate_savar_datasets.py, and graph_evaluation.py.
- Modified load_and_permute_all_matrices function to accept explicit parameters instead of a list of CSV files, improving clarity on input requirements.
- Adjusted the main execution block in varimax_pcmci_savar_evaluation.py to streamline loading and processing of inferred modes and adjacency matrices.
- Ensured consistent use of spacing and line breaks throughout the codebase for better readability.
feat: add seasonality parameters to savarParams and SavarDataset, update data generation to support seasonal effects
…otting

- Added plot_savar_forcing_map, refactored plot_adjcanecy_matrix for savar, added plot_compare_predicitions for savar
- Removed unused imports and commented-out code in generate_savar_datasets.py.
- Simplified data generation logic by ensuring forcing_dict is always passed.
- Enhanced SAVAR class in savar.py to include seasonal forcing interactions.
- Added methods to create CO2 and aerosol forcing fields with diagnostics.
- Implemented a new script analyze_savar_run.py for diagnosing latent transition behavior in SAVAR runs.
- Improved logging and error handling throughout the codebase.
- Implemented causal forcing application in SAVAR (CO2/aerosol to climate modes)
- Added distinct temporal dynamics per aerosol latent with staggered timing
- Created SavarPlotter class for comprehensive forcing/latent visualization
- Added plot_forcing_diagnostic and plot_aerosol_latent_trajectories methods
- Implemented plot_decoder_connectivity_heatmap for latent usage analysis
- Added plot_adjacency_with_forcing_labels for labeled graph visualization
- Added evaluate_adjacency_by_link_type to assess climate/forcing link recovery
- Created diagnostic script to analyze forcing encoder health
- Stored separate CO2/aerosol forcing fields for dual exogenous conditioning
- Added forcing latent trajectory ground truth outputs to SAVAR generation
- Updated SAVAR dataset saving to use subfolder structure with separate files
- Extended config parameters for aerosol temporal control (ramp_up/peak/decline times)
… for SAVAR

Introduce a new forcing architecture where CO2 and aerosol forcings get
dedicated latent dimensions with their own encoder/decoder weights (w_co2,
w_aerosol), separate from the main observation autoencoder. This enables
the use_forced_latents=True, use_exogenous=False configuration path.

Key changes:
- Separate MLP conditioning dims (d_y_co2) from forcing encoder/decoder
  spatial dims (d_y_co2_spatial) in LinearAutoEncoder and
  NonLinearAutoEncoderUniqueMLP_noloop, fixing the bug where forcing
  encoders got size-0 inputs when use_exogenous=False
- Add forcing reconstruction + supervision losses in training loop (ALM)
- Extend SAVAR data generation with causal forcing structure
  (CO2/aerosol latent trajectories, spatial templates, graph evaluation)
- Add use_separate_forcings flag to SAVAR dataset for loading CO2/aerosol
  as distinct forcing fields
- Extend plotting with spatial aggregation, forcing trajectory, and
  decoder weight visualizations
- Add PCMCI + Varimax baseline evaluation for SAVAR
- Remove dead code: _add_external_forcing, _apply_causal_forcing,
  _consume_radiative_forcing, _plot_mean_forcing
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants