Merged
Conversation
- New tool: destine_retrieval_tool.py with two-step workflow: 1. search_destine_parameters: RAG semantic search over 82 DestinE parameters via Chroma vector store 2. retrieve_destine_data: download point time series via earthkit.data + polytope - Authentication via ~/.polytopeapirc token (from desp-authentication.py) - UI toggle for DestinE data with token file status check - DestinE test suite (pytest -m destine), skipped by default - Updated README with DestinE authentication instructions
Move os.chdir(REPO_ROOT) from module level to an autouse fixture that restores the original cwd after each test, preventing side effects on other test files that use relative paths.
… add utility scripts - Fix lat/lon swap in polytope request (was [lon, lat], now [lat, lon]) - Remove "keep date ranges SHORT" limits — default to full 2020-2039 period - Simplify intro_agent prompt - Add standalone DestinE download scripts (simple + parallel yearly) - Add ERA5 fetch script and test utilities
…ring - Guide data_analysis_agent to download ERA5/DestinE variables in parallel (all in one response) - Relax intro_agent exclusion rules to allow analysis instructions (download data, plot time series, compute statistics)
…gets - ANALYSIS_MODES dict defines presets for tool limits, max_iterations, and toggle defaults - resolve_analysis_config() merges mode defaults with explicit UI overrides - Mode radio selector outside form with on_change callback syncs toggles immediately - Prompt budgets (hard limit, max per response, reflect limit) adapt per mode
Merged
Collaborator
|
@kuivi can you, please, resolve conflicts? |
Collaborator
Author
|
koldunovn
approved these changes
Mar 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
FIRST ACCEPT PR 196
Add DestinE Climate DT Data Retrieval + Three Analysis Modes
Summary
Two major additions to ClimSight's data analysis pipeline:
DestinE Climate Digital Twin data retrieval — live download of high-resolution climate projection time series (SSP3-7.0, IFS-NEMO model, 2020-2039) for any point location, with 82 available parameters discoverable via RAG semantic search.
Three analysis modes (fast / smart / deep) — configurable presets that control tool availability, budgets, and iteration limits, with per-toggle overrides in the UI.
DestinE retrieval tool
New file:
src/climsight/tools/destine_retrieval_tool.pyearthkit.data+ polytope API)~/.polytopeapirctoken file (obtained by runningdesp-authentication.py)Agent integration (
data_analysis_agent.py)use_destine_data: truein configUI integration (
streamlit_interface.py)State management (
climsight_classes.py,sandbox_utils.py)destine_data_diranddestine_tool_responsefields in AgentStatedestine_data/directoryAnalysis modes
Implementation:
ANALYSIS_MODESdict +resolve_analysis_config()indata_analysis_agent.pyon_changecallback — toggles visually sync when mode changesconfig.yml:analysis_mode: "smart"settingroute_after_prepare()inclimsight_engine.pyuses resolved config for routingOther changes
[lat, lon], not[lon, lat]Testing
test/test_destine_tool.py— dedicated test suite (RAG search, data retrieval, caching, error handling)destinemarker, skipped by default in normal pytest runspytest -m destine -vtest/conftest.py— auto-skip logic for destine-marked testsUtility scripts
src/climsight/scripts/download_destine_simple.py— single-request download examplesrc/climsight/scripts/download_destine_example.py— parallel yearly download with timingsrc/climsight/scripts/era5_fetch.py— ERA5 data fetch utilityRequirements
earthkit-datapackage (for polytope API access)langchain-chroma,chromadb,langchain-openai(for RAG parameter search)~/.polytopeapirctoken file (rundesp-authentication.pyto obtain)OPENAI_API_KEYenvironment variable (for embedding-based parameter search)