[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-earth2studio-data-fetch":3,"mdc-2l64t6-key":31,"related-repo-nvidia-earth2studio-data-fetch":1310,"related-org-nvidia-earth2studio-data-fetch":1412},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":26,"sourceUrl":29,"mdContent":30},"earth2studio-data-fetch","fetch weather and climate data","Fetch weather\u002Fclimate data via Earth2Studio data sources for specific variables and times. Do NOT use for inference pipelines, model discovery, or installation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"nvidia","NVIDIA","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnvidia.png",[12,16,19],{"name":13,"slug":14,"type":15},"Research","research","tag",{"name":17,"slug":18,"type":15},"Data Analysis","data-analysis",{"name":9,"slug":8,"type":15},2473,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills","2026-07-14T05:28:55.496791","Apache-2.0",281,[],{"repoUrl":21,"stars":20,"forks":24,"topics":27,"description":28},[],"AI agent skills published by NVIDIA","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fearth2studio-data-fetch","---\nname: earth2studio-data-fetch\nversion: 0.16.0\nlicense: Apache-2.0\nmetadata:\n  author: NVIDIA Earth-2 Team\n  tags:\n    - earth2studio\n    - earth2\n    - python\n    - data-fetch\n    - weather-data\n    - xarray\ndescription: >\n  Fetch weather\u002Fclimate data via Earth2Studio data sources for specific variables\n  and times. Do NOT use for inference pipelines, model discovery, or installation.\n---\n\n# Earth2Studio Data Fetch Skill\n\n## Purpose\n\nGuide a user through downloading weather\u002Fclimate data via Earth2Studio data source\nAPIs. Identifies compatible sources by checking the lexicon, verifies variable\nsupport, and produces a working fetch script outputting an xarray DataArray.\n\n## Prerequisites\n\n- Earth2Studio installed (`uv pip install earth2studio` or equivalent)\n- Network access to remote data stores (GCS, S3, CDS API, etc.)\n- For CDS-based sources: valid CDS API key configured (`~\u002F.cdsapirc`)\n- Python 3.10+\n\n## Instructions\n\nYou are helping a user download specific weather\u002Fclimate data using\nEarth2Studio's data source APIs. Your job is to identify which data source(s)\ncan provide the requested variables, verify compatibility via the lexicon\nsystem, and produce a working fetch script.\n\n### Core principle: live docs and lexicon are the source of truth\n\nData source APIs, available variables, and the lexicon evolve between releases.\nBefore recommending a data source or writing a fetch script:\n\n1. **Fetch the relevant data source doc page** to confirm the API signature\n   and constructor arguments.\n2. **Check the lexicon** to verify the requested variable is supported by\n   that data source.\n\nLive doc references (fetch only what the user's request requires):\n\n- **Analysis data sources:**\n  \u003Chttps:\u002F\u002Fnvidia.github.io\u002Fearth2studio\u002Fmodules\u002Fdatasources_analysis.html>\n- **Forecast data sources:**\n  \u003Chttps:\u002F\u002Fnvidia.github.io\u002Fearth2studio\u002Fmodules\u002Fdatasources_forecast.html>\n- **DataFrame data sources:**\n  \u003Chttps:\u002F\u002Fnvidia.github.io\u002Fearth2studio\u002Fmodules\u002Fdatasources_dataframe.html>\n- **Lexicon base:**\n  \u003Chttps:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fearth2studio\u002Fblob\u002Fmain\u002Fearth2studio\u002Flexicon\u002Fbase.py>\n- **Lexicon per-source:**\n  \u003Chttps:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fearth2studio\u002Ftree\u002Fmain\u002Fearth2studio\u002Flexicon>\n\n### Interaction protocol\n\n#### Step 1. Understand the user's request\n\nExtract from what the user has said (ask follow-ups if needed, cap at 3\nquestions):\n\n- **Variables** — what do they want? Use Earth2Studio variable names\n  (e.g. `t2m`, `u500`, `z850`, `tp`, `msl`). If the user uses plain language\n  (\"500 hPa geopotential height\"), map it to the E2Studio name by checking\n  the live `base.py` E2STUDIO_VOCAB.\n- **Time** — what date\u002Ftime range? A single timestamp, a range, or multiple\n  discrete times?\n- **Data type** — analysis\u002Freanalysis (historical state) or forecast (lead-time based)?\n- **Lead time** (forecast only) — how far ahead? Which initialization time?\n- **Region** — global or regional (e.g. North America for HRRR)?\n- **Output format** — xarray DataArray (default), save to file (NetCDF\u002FZarr)?\n\n#### Step 2. Identify candidate data sources\n\nBased on the request type, narrow candidates:\n\n**Analysis\u002Freanalysis** (historical state at a specific time):\n\n- Use analysis data source page to identify options\n- Common choices: GFS (operational, recent), HRRR (NA, hourly),\n  IFS\u002FIFS_ENS (ECMWF), ARCO\u002FCDS\u002FWB2ERA5\u002FNCAR_ERA5 (ERA5 reanalysis),\n  GOES\u002FMRMS\u002FJPSS (observational)\n\n**Forecast** (predictions from an initialization time with lead times):\n\n- Use forecast data source page to identify options\n- Common choices: GFS_FX, GEFS_FX, HRRR_FX, IFS_FX, IFS_ENS_FX,\n  AIFS_FX, CFS_FX\n\nKey differentiators to surface:\n\n- **Temporal coverage** — operational sources (GFS, HRRR) have limited\n  history; reanalysis (ERA5 via ARCO\u002FCDS\u002FWB2) goes back decades\n- **Spatial resolution** — HRRR is 3km NA-only; GFS is 0.25° global;\n  WB2ERA5_32x64 is 5.625° global\n- **Update frequency** — some are real-time, some have multi-day lag\n\n#### Step 3. Verify variable support via lexicon\n\nThis is critical. Each data source has a lexicon file that defines which\nE2Studio variables it can provide.\n\nTo verify:\n\n1. Fetch the source's lexicon file from\n   `https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fearth2studio\u002Fblob\u002Fmain\u002Fearth2studio\u002Flexicon\u002F\u003Csource>.py`\n   (e.g. `gfs.py`, `hrrr.py`, `cds.py`, `arco.py`, `wb2.py`)\n2. Check that the user's requested variable(s) appear as keys in the\n   source's `VOCAB` dict\n3. If a variable is NOT in a source's lexicon, that source cannot provide\n   it — try another\n\nThe lexicon VOCAB maps Earth2Studio variable names → source-specific\nidentifiers. If a variable key exists in the VOCAB, the source supports it.\n\nPresent the results clearly: *\"GFS supports `t2m`, `u500`, `z850`. HRRR also\nsupports these but is limited to North America. ARCO (ERA5) supports all\nthree and has data back to 1959.\"*\n\n#### Step 4. Confirm data source selection with user\n\nPresent the viable options with tradeoffs:\n\n| Source | Variables | Coverage | Resolution | Time Range |\n|--------|-----------|----------|------------|------------|\n| ... | ... | ... | ... | ... |\n\nLet the user pick. If there's one obvious choice, recommend it and ask for\nconfirmation.\n\n#### Step 5. Generate fetch script\n\nWrite a Python script that uses the selected data source to fetch the\nrequested data. The script structure depends on whether it's an analysis or\nforecast source.\n\n**Analysis source pattern:**\n\n```python\nimport datetime\nfrom earth2studio.data import \u003CSourceClass>\n\n# Initialize data source\nds = \u003CSourceClass>()\n\n# Fetch data\n# Analysis sources use: ds(time, variable) -> xr.DataArray\ntime = [datetime.datetime(YYYY, M, D, H)]  # or array of times\nvariable = [\"var1\", \"var2\"]  # E2Studio variable names\n\ndata = ds(time, variable)\n```\n\n**Forecast source pattern:**\n\n```python\nimport datetime\nfrom earth2studio.data import \u003CSourceClass>\n\n# Initialize data source\nds = \u003CSourceClass>()\n\n# Forecast sources use: ds(time, lead_time, variable) -> xr.DataArray\ntime = [datetime.datetime(YYYY, M, D, H)]  # initialization time\nlead_time = [datetime.timedelta(hours=H)]   # or array of lead times\nvariable = [\"var1\", \"var2\"]\n\ndata = ds(time, lead_time, variable)\n```\n\nAlways fetch the specific data source's API doc page to confirm the exact\nconstructor arguments and call signature before writing the script — they can\nvary (some need auth tokens, cache paths, specific parameters).\n\nInclude in the script:\n\n- Appropriate imports\n- Clear comments explaining each step\n- How to inspect the result (`print(data)`, `data.shape`, `data.coords`)\n- Optional: saving to file if the user requested it\n\n#### Step 6. Offer next steps\n\nAfter delivering the script, mention:\n\n- How to change variables\u002Ftimes without rewriting the whole thing\n- If they might want to feed this into a model, point them to the\n  discover skill\n- Cache behavior (data is cached locally after first fetch via\n  `EARTH2STUDIO_CACHE`)\n\n### Ownership and out-of-scope\n\n**Owns:** identifying data sources for a user's variable\u002Ftime request,\nverifying variable support via lexicon, generating data fetch scripts,\nexplaining analysis vs. forecast source differences.\n\n**Does not own:** installation (earth2studio-install), model selection\n(earth2studio-discover), inference pipelines, custom data source creation\n(point to extend examples), data source authentication setup beyond what\nthe docs describe.\n\n## Examples\n\nTypical invocation:\n\n> \"I need 500 hPa geopotential height and 2m temperature from ERA5\n> for January 1, 2020 at 00Z.\"\n\nThe skill would:\n\n1. Map plain language → `z500`, `t2m`\n2. Check ARCO\u002FCDS\u002FWB2ERA5 lexicons for support\n3. Recommend ARCO (free, no API key) or CDS (official, needs key)\n4. Generate a fetch script using the selected source\n\n## Limitations\n\n- **Network required** — all data sources fetch from remote stores\n  (GCS, S3, CDS API)\n- **No local file loading** — for local NetCDF\u002FZarr, use\n  `DataArrayFile`\u002F`DataSetFile` directly\n- **One source type per script** — cannot mix analysis and forecast\n  sources in a single call\n- **Variable availability varies** — not all sources provide all\n  variables; always verify via lexicon\n- **Rate limits** — CDS API has queue-based throttling; GCS\u002FS3 sources\n  are generally faster\n\n## Troubleshooting\n\n| Error | Cause | Solution |\n|-------|-------|----------|\n| `KeyError: '\u003Cvar>'` | Not in lexicon | Check lexicon; try another source |\n| `FileNotFoundError` \u002F 404 | Time not available | Verify temporal coverage |\n| `CDS API timeout` | Queue congestion | Retry or use ARCO for ERA5 |\n| `ModuleNotFoundError` | Not installed | `uv pip install earth2studio` |\n| Empty DataArray | Time\u002Fvar mismatch | Check datetime and variable name |\n",{"data":32,"body":43},{"name":4,"version":33,"license":23,"metadata":34,"description":6},"0.16.0",{"author":35,"tags":36},"NVIDIA Earth-2 Team",[37,38,39,40,41,42],"earth2studio","earth2","python","data-fetch","weather-data","xarray",{"type":44,"children":45},"root",[46,55,62,68,74,116,122,127,134,139,164,169,244,250,257,262,370,376,381,391,404,414,427,432,465,471,476,481,550,555,585,591,596,662,667,673,678,686,805,813,909,914,919,963,969,974,999,1005,1015,1025,1031,1036,1045,1050,1085,1091,1160,1166,1304],{"type":47,"tag":48,"props":49,"children":51},"element","h1",{"id":50},"earth2studio-data-fetch-skill",[52],{"type":53,"value":54},"text","Earth2Studio Data Fetch Skill",{"type":47,"tag":56,"props":57,"children":59},"h2",{"id":58},"purpose",[60],{"type":53,"value":61},"Purpose",{"type":47,"tag":63,"props":64,"children":65},"p",{},[66],{"type":53,"value":67},"Guide a user through downloading weather\u002Fclimate data via Earth2Studio data source\nAPIs. Identifies compatible sources by checking the lexicon, verifies variable\nsupport, and produces a working fetch script outputting an xarray DataArray.",{"type":47,"tag":56,"props":69,"children":71},{"id":70},"prerequisites",[72],{"type":53,"value":73},"Prerequisites",{"type":47,"tag":75,"props":76,"children":77},"ul",{},[78,93,98,111],{"type":47,"tag":79,"props":80,"children":81},"li",{},[82,84,91],{"type":53,"value":83},"Earth2Studio installed (",{"type":47,"tag":85,"props":86,"children":88},"code",{"className":87},[],[89],{"type":53,"value":90},"uv pip install earth2studio",{"type":53,"value":92}," or equivalent)",{"type":47,"tag":79,"props":94,"children":95},{},[96],{"type":53,"value":97},"Network access to remote data stores (GCS, S3, CDS API, etc.)",{"type":47,"tag":79,"props":99,"children":100},{},[101,103,109],{"type":53,"value":102},"For CDS-based sources: valid CDS API key configured (",{"type":47,"tag":85,"props":104,"children":106},{"className":105},[],[107],{"type":53,"value":108},"~\u002F.cdsapirc",{"type":53,"value":110},")",{"type":47,"tag":79,"props":112,"children":113},{},[114],{"type":53,"value":115},"Python 3.10+",{"type":47,"tag":56,"props":117,"children":119},{"id":118},"instructions",[120],{"type":53,"value":121},"Instructions",{"type":47,"tag":63,"props":123,"children":124},{},[125],{"type":53,"value":126},"You are helping a user download specific weather\u002Fclimate data using\nEarth2Studio's data source APIs. Your job is to identify which data source(s)\ncan provide the requested variables, verify compatibility via the lexicon\nsystem, and produce a working fetch script.",{"type":47,"tag":128,"props":129,"children":131},"h3",{"id":130},"core-principle-live-docs-and-lexicon-are-the-source-of-truth",[132],{"type":53,"value":133},"Core principle: live docs and lexicon are the source of truth",{"type":47,"tag":63,"props":135,"children":136},{},[137],{"type":53,"value":138},"Data source APIs, available variables, and the lexicon evolve between releases.\nBefore recommending a data source or writing a fetch script:",{"type":47,"tag":140,"props":141,"children":142},"ol",{},[143,154],{"type":47,"tag":79,"props":144,"children":145},{},[146,152],{"type":47,"tag":147,"props":148,"children":149},"strong",{},[150],{"type":53,"value":151},"Fetch the relevant data source doc page",{"type":53,"value":153}," to confirm the API signature\nand constructor arguments.",{"type":47,"tag":79,"props":155,"children":156},{},[157,162],{"type":47,"tag":147,"props":158,"children":159},{},[160],{"type":53,"value":161},"Check the lexicon",{"type":53,"value":163}," to verify the requested variable is supported by\nthat data source.",{"type":47,"tag":63,"props":165,"children":166},{},[167],{"type":53,"value":168},"Live doc references (fetch only what the user's request requires):",{"type":47,"tag":75,"props":170,"children":171},{},[172,188,202,216,230],{"type":47,"tag":79,"props":173,"children":174},{},[175,180],{"type":47,"tag":147,"props":176,"children":177},{},[178],{"type":53,"value":179},"Analysis data sources:",{"type":47,"tag":181,"props":182,"children":186},"a",{"href":183,"rel":184},"https:\u002F\u002Fnvidia.github.io\u002Fearth2studio\u002Fmodules\u002Fdatasources_analysis.html",[185],"nofollow",[187],{"type":53,"value":183},{"type":47,"tag":79,"props":189,"children":190},{},[191,196],{"type":47,"tag":147,"props":192,"children":193},{},[194],{"type":53,"value":195},"Forecast data sources:",{"type":47,"tag":181,"props":197,"children":200},{"href":198,"rel":199},"https:\u002F\u002Fnvidia.github.io\u002Fearth2studio\u002Fmodules\u002Fdatasources_forecast.html",[185],[201],{"type":53,"value":198},{"type":47,"tag":79,"props":203,"children":204},{},[205,210],{"type":47,"tag":147,"props":206,"children":207},{},[208],{"type":53,"value":209},"DataFrame data sources:",{"type":47,"tag":181,"props":211,"children":214},{"href":212,"rel":213},"https:\u002F\u002Fnvidia.github.io\u002Fearth2studio\u002Fmodules\u002Fdatasources_dataframe.html",[185],[215],{"type":53,"value":212},{"type":47,"tag":79,"props":217,"children":218},{},[219,224],{"type":47,"tag":147,"props":220,"children":221},{},[222],{"type":53,"value":223},"Lexicon base:",{"type":47,"tag":181,"props":225,"children":228},{"href":226,"rel":227},"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fearth2studio\u002Fblob\u002Fmain\u002Fearth2studio\u002Flexicon\u002Fbase.py",[185],[229],{"type":53,"value":226},{"type":47,"tag":79,"props":231,"children":232},{},[233,238],{"type":47,"tag":147,"props":234,"children":235},{},[236],{"type":53,"value":237},"Lexicon per-source:",{"type":47,"tag":181,"props":239,"children":242},{"href":240,"rel":241},"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fearth2studio\u002Ftree\u002Fmain\u002Fearth2studio\u002Flexicon",[185],[243],{"type":53,"value":240},{"type":47,"tag":128,"props":245,"children":247},{"id":246},"interaction-protocol",[248],{"type":53,"value":249},"Interaction protocol",{"type":47,"tag":251,"props":252,"children":254},"h4",{"id":253},"step-1-understand-the-users-request",[255],{"type":53,"value":256},"Step 1. Understand the user's request",{"type":47,"tag":63,"props":258,"children":259},{},[260],{"type":53,"value":261},"Extract from what the user has said (ask follow-ups if needed, cap at 3\nquestions):",{"type":47,"tag":75,"props":263,"children":264},{},[265,320,330,340,350,360],{"type":47,"tag":79,"props":266,"children":267},{},[268,273,275,281,283,289,290,296,297,303,304,310,312,318],{"type":47,"tag":147,"props":269,"children":270},{},[271],{"type":53,"value":272},"Variables",{"type":53,"value":274}," — what do they want? Use Earth2Studio variable names\n(e.g. ",{"type":47,"tag":85,"props":276,"children":278},{"className":277},[],[279],{"type":53,"value":280},"t2m",{"type":53,"value":282},", ",{"type":47,"tag":85,"props":284,"children":286},{"className":285},[],[287],{"type":53,"value":288},"u500",{"type":53,"value":282},{"type":47,"tag":85,"props":291,"children":293},{"className":292},[],[294],{"type":53,"value":295},"z850",{"type":53,"value":282},{"type":47,"tag":85,"props":298,"children":300},{"className":299},[],[301],{"type":53,"value":302},"tp",{"type":53,"value":282},{"type":47,"tag":85,"props":305,"children":307},{"className":306},[],[308],{"type":53,"value":309},"msl",{"type":53,"value":311},"). If the user uses plain language\n(\"500 hPa geopotential height\"), map it to the E2Studio name by checking\nthe live ",{"type":47,"tag":85,"props":313,"children":315},{"className":314},[],[316],{"type":53,"value":317},"base.py",{"type":53,"value":319}," E2STUDIO_VOCAB.",{"type":47,"tag":79,"props":321,"children":322},{},[323,328],{"type":47,"tag":147,"props":324,"children":325},{},[326],{"type":53,"value":327},"Time",{"type":53,"value":329}," — what date\u002Ftime range? A single timestamp, a range, or multiple\ndiscrete times?",{"type":47,"tag":79,"props":331,"children":332},{},[333,338],{"type":47,"tag":147,"props":334,"children":335},{},[336],{"type":53,"value":337},"Data type",{"type":53,"value":339}," — analysis\u002Freanalysis (historical state) or forecast (lead-time based)?",{"type":47,"tag":79,"props":341,"children":342},{},[343,348],{"type":47,"tag":147,"props":344,"children":345},{},[346],{"type":53,"value":347},"Lead time",{"type":53,"value":349}," (forecast only) — how far ahead? Which initialization time?",{"type":47,"tag":79,"props":351,"children":352},{},[353,358],{"type":47,"tag":147,"props":354,"children":355},{},[356],{"type":53,"value":357},"Region",{"type":53,"value":359}," — global or regional (e.g. North America for HRRR)?",{"type":47,"tag":79,"props":361,"children":362},{},[363,368],{"type":47,"tag":147,"props":364,"children":365},{},[366],{"type":53,"value":367},"Output format",{"type":53,"value":369}," — xarray DataArray (default), save to file (NetCDF\u002FZarr)?",{"type":47,"tag":251,"props":371,"children":373},{"id":372},"step-2-identify-candidate-data-sources",[374],{"type":53,"value":375},"Step 2. Identify candidate data sources",{"type":47,"tag":63,"props":377,"children":378},{},[379],{"type":53,"value":380},"Based on the request type, narrow candidates:",{"type":47,"tag":63,"props":382,"children":383},{},[384,389],{"type":47,"tag":147,"props":385,"children":386},{},[387],{"type":53,"value":388},"Analysis\u002Freanalysis",{"type":53,"value":390}," (historical state at a specific time):",{"type":47,"tag":75,"props":392,"children":393},{},[394,399],{"type":47,"tag":79,"props":395,"children":396},{},[397],{"type":53,"value":398},"Use analysis data source page to identify options",{"type":47,"tag":79,"props":400,"children":401},{},[402],{"type":53,"value":403},"Common choices: GFS (operational, recent), HRRR (NA, hourly),\nIFS\u002FIFS_ENS (ECMWF), ARCO\u002FCDS\u002FWB2ERA5\u002FNCAR_ERA5 (ERA5 reanalysis),\nGOES\u002FMRMS\u002FJPSS (observational)",{"type":47,"tag":63,"props":405,"children":406},{},[407,412],{"type":47,"tag":147,"props":408,"children":409},{},[410],{"type":53,"value":411},"Forecast",{"type":53,"value":413}," (predictions from an initialization time with lead times):",{"type":47,"tag":75,"props":415,"children":416},{},[417,422],{"type":47,"tag":79,"props":418,"children":419},{},[420],{"type":53,"value":421},"Use forecast data source page to identify options",{"type":47,"tag":79,"props":423,"children":424},{},[425],{"type":53,"value":426},"Common choices: GFS_FX, GEFS_FX, HRRR_FX, IFS_FX, IFS_ENS_FX,\nAIFS_FX, CFS_FX",{"type":47,"tag":63,"props":428,"children":429},{},[430],{"type":53,"value":431},"Key differentiators to surface:",{"type":47,"tag":75,"props":433,"children":434},{},[435,445,455],{"type":47,"tag":79,"props":436,"children":437},{},[438,443],{"type":47,"tag":147,"props":439,"children":440},{},[441],{"type":53,"value":442},"Temporal coverage",{"type":53,"value":444}," — operational sources (GFS, HRRR) have limited\nhistory; reanalysis (ERA5 via ARCO\u002FCDS\u002FWB2) goes back decades",{"type":47,"tag":79,"props":446,"children":447},{},[448,453],{"type":47,"tag":147,"props":449,"children":450},{},[451],{"type":53,"value":452},"Spatial resolution",{"type":53,"value":454}," — HRRR is 3km NA-only; GFS is 0.25° global;\nWB2ERA5_32x64 is 5.625° global",{"type":47,"tag":79,"props":456,"children":457},{},[458,463],{"type":47,"tag":147,"props":459,"children":460},{},[461],{"type":53,"value":462},"Update frequency",{"type":53,"value":464}," — some are real-time, some have multi-day lag",{"type":47,"tag":251,"props":466,"children":468},{"id":467},"step-3-verify-variable-support-via-lexicon",[469],{"type":53,"value":470},"Step 3. Verify variable support via lexicon",{"type":47,"tag":63,"props":472,"children":473},{},[474],{"type":53,"value":475},"This is critical. Each data source has a lexicon file that defines which\nE2Studio variables it can provide.",{"type":47,"tag":63,"props":477,"children":478},{},[479],{"type":53,"value":480},"To verify:",{"type":47,"tag":140,"props":482,"children":483},{},[484,532,545],{"type":47,"tag":79,"props":485,"children":486},{},[487,489,495,497,503,504,510,511,517,518,524,525,531],{"type":53,"value":488},"Fetch the source's lexicon file from\n",{"type":47,"tag":85,"props":490,"children":492},{"className":491},[],[493],{"type":53,"value":494},"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fearth2studio\u002Fblob\u002Fmain\u002Fearth2studio\u002Flexicon\u002F\u003Csource>.py",{"type":53,"value":496},"\n(e.g. ",{"type":47,"tag":85,"props":498,"children":500},{"className":499},[],[501],{"type":53,"value":502},"gfs.py",{"type":53,"value":282},{"type":47,"tag":85,"props":505,"children":507},{"className":506},[],[508],{"type":53,"value":509},"hrrr.py",{"type":53,"value":282},{"type":47,"tag":85,"props":512,"children":514},{"className":513},[],[515],{"type":53,"value":516},"cds.py",{"type":53,"value":282},{"type":47,"tag":85,"props":519,"children":521},{"className":520},[],[522],{"type":53,"value":523},"arco.py",{"type":53,"value":282},{"type":47,"tag":85,"props":526,"children":528},{"className":527},[],[529],{"type":53,"value":530},"wb2.py",{"type":53,"value":110},{"type":47,"tag":79,"props":533,"children":534},{},[535,537,543],{"type":53,"value":536},"Check that the user's requested variable(s) appear as keys in the\nsource's ",{"type":47,"tag":85,"props":538,"children":540},{"className":539},[],[541],{"type":53,"value":542},"VOCAB",{"type":53,"value":544}," dict",{"type":47,"tag":79,"props":546,"children":547},{},[548],{"type":53,"value":549},"If a variable is NOT in a source's lexicon, that source cannot provide\nit — try another",{"type":47,"tag":63,"props":551,"children":552},{},[553],{"type":53,"value":554},"The lexicon VOCAB maps Earth2Studio variable names → source-specific\nidentifiers. If a variable key exists in the VOCAB, the source supports it.",{"type":47,"tag":63,"props":556,"children":557},{},[558,560],{"type":53,"value":559},"Present the results clearly: ",{"type":47,"tag":561,"props":562,"children":563},"em",{},[564,566,571,572,577,578,583],{"type":53,"value":565},"\"GFS supports ",{"type":47,"tag":85,"props":567,"children":569},{"className":568},[],[570],{"type":53,"value":280},{"type":53,"value":282},{"type":47,"tag":85,"props":573,"children":575},{"className":574},[],[576],{"type":53,"value":288},{"type":53,"value":282},{"type":47,"tag":85,"props":579,"children":581},{"className":580},[],[582],{"type":53,"value":295},{"type":53,"value":584},". HRRR also\nsupports these but is limited to North America. ARCO (ERA5) supports all\nthree and has data back to 1959.\"",{"type":47,"tag":251,"props":586,"children":588},{"id":587},"step-4-confirm-data-source-selection-with-user",[589],{"type":53,"value":590},"Step 4. Confirm data source selection with user",{"type":47,"tag":63,"props":592,"children":593},{},[594],{"type":53,"value":595},"Present the viable options with tradeoffs:",{"type":47,"tag":597,"props":598,"children":599},"table",{},[600,633],{"type":47,"tag":601,"props":602,"children":603},"thead",{},[604],{"type":47,"tag":605,"props":606,"children":607},"tr",{},[608,614,618,623,628],{"type":47,"tag":609,"props":610,"children":611},"th",{},[612],{"type":53,"value":613},"Source",{"type":47,"tag":609,"props":615,"children":616},{},[617],{"type":53,"value":272},{"type":47,"tag":609,"props":619,"children":620},{},[621],{"type":53,"value":622},"Coverage",{"type":47,"tag":609,"props":624,"children":625},{},[626],{"type":53,"value":627},"Resolution",{"type":47,"tag":609,"props":629,"children":630},{},[631],{"type":53,"value":632},"Time Range",{"type":47,"tag":634,"props":635,"children":636},"tbody",{},[637],{"type":47,"tag":605,"props":638,"children":639},{},[640,646,650,654,658],{"type":47,"tag":641,"props":642,"children":643},"td",{},[644],{"type":53,"value":645},"...",{"type":47,"tag":641,"props":647,"children":648},{},[649],{"type":53,"value":645},{"type":47,"tag":641,"props":651,"children":652},{},[653],{"type":53,"value":645},{"type":47,"tag":641,"props":655,"children":656},{},[657],{"type":53,"value":645},{"type":47,"tag":641,"props":659,"children":660},{},[661],{"type":53,"value":645},{"type":47,"tag":63,"props":663,"children":664},{},[665],{"type":53,"value":666},"Let the user pick. If there's one obvious choice, recommend it and ask for\nconfirmation.",{"type":47,"tag":251,"props":668,"children":670},{"id":669},"step-5-generate-fetch-script",[671],{"type":53,"value":672},"Step 5. Generate fetch script",{"type":47,"tag":63,"props":674,"children":675},{},[676],{"type":53,"value":677},"Write a Python script that uses the selected data source to fetch the\nrequested data. The script structure depends on whether it's an analysis or\nforecast source.",{"type":47,"tag":63,"props":679,"children":680},{},[681],{"type":47,"tag":147,"props":682,"children":683},{},[684],{"type":53,"value":685},"Analysis source pattern:",{"type":47,"tag":687,"props":688,"children":692},"pre",{"className":689,"code":690,"language":39,"meta":691,"style":691},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import datetime\nfrom earth2studio.data import \u003CSourceClass>\n\n# Initialize data source\nds = \u003CSourceClass>()\n\n# Fetch data\n# Analysis sources use: ds(time, variable) -> xr.DataArray\ntime = [datetime.datetime(YYYY, M, D, H)]  # or array of times\nvariable = [\"var1\", \"var2\"]  # E2Studio variable names\n\ndata = ds(time, variable)\n","",[693],{"type":47,"tag":85,"props":694,"children":695},{"__ignoreMap":691},[696,707,716,726,735,744,752,761,770,779,788,796],{"type":47,"tag":697,"props":698,"children":701},"span",{"class":699,"line":700},"line",1,[702],{"type":47,"tag":697,"props":703,"children":704},{},[705],{"type":53,"value":706},"import datetime\n",{"type":47,"tag":697,"props":708,"children":710},{"class":699,"line":709},2,[711],{"type":47,"tag":697,"props":712,"children":713},{},[714],{"type":53,"value":715},"from earth2studio.data import \u003CSourceClass>\n",{"type":47,"tag":697,"props":717,"children":719},{"class":699,"line":718},3,[720],{"type":47,"tag":697,"props":721,"children":723},{"emptyLinePlaceholder":722},true,[724],{"type":53,"value":725},"\n",{"type":47,"tag":697,"props":727,"children":729},{"class":699,"line":728},4,[730],{"type":47,"tag":697,"props":731,"children":732},{},[733],{"type":53,"value":734},"# Initialize data source\n",{"type":47,"tag":697,"props":736,"children":738},{"class":699,"line":737},5,[739],{"type":47,"tag":697,"props":740,"children":741},{},[742],{"type":53,"value":743},"ds = \u003CSourceClass>()\n",{"type":47,"tag":697,"props":745,"children":747},{"class":699,"line":746},6,[748],{"type":47,"tag":697,"props":749,"children":750},{"emptyLinePlaceholder":722},[751],{"type":53,"value":725},{"type":47,"tag":697,"props":753,"children":755},{"class":699,"line":754},7,[756],{"type":47,"tag":697,"props":757,"children":758},{},[759],{"type":53,"value":760},"# Fetch data\n",{"type":47,"tag":697,"props":762,"children":764},{"class":699,"line":763},8,[765],{"type":47,"tag":697,"props":766,"children":767},{},[768],{"type":53,"value":769},"# Analysis sources use: ds(time, variable) -> xr.DataArray\n",{"type":47,"tag":697,"props":771,"children":773},{"class":699,"line":772},9,[774],{"type":47,"tag":697,"props":775,"children":776},{},[777],{"type":53,"value":778},"time = [datetime.datetime(YYYY, M, D, H)]  # or array of times\n",{"type":47,"tag":697,"props":780,"children":782},{"class":699,"line":781},10,[783],{"type":47,"tag":697,"props":784,"children":785},{},[786],{"type":53,"value":787},"variable = [\"var1\", \"var2\"]  # E2Studio variable names\n",{"type":47,"tag":697,"props":789,"children":791},{"class":699,"line":790},11,[792],{"type":47,"tag":697,"props":793,"children":794},{"emptyLinePlaceholder":722},[795],{"type":53,"value":725},{"type":47,"tag":697,"props":797,"children":799},{"class":699,"line":798},12,[800],{"type":47,"tag":697,"props":801,"children":802},{},[803],{"type":53,"value":804},"data = ds(time, variable)\n",{"type":47,"tag":63,"props":806,"children":807},{},[808],{"type":47,"tag":147,"props":809,"children":810},{},[811],{"type":53,"value":812},"Forecast source pattern:",{"type":47,"tag":687,"props":814,"children":816},{"className":689,"code":815,"language":39,"meta":691,"style":691},"import datetime\nfrom earth2studio.data import \u003CSourceClass>\n\n# Initialize data source\nds = \u003CSourceClass>()\n\n# Forecast sources use: ds(time, lead_time, variable) -> xr.DataArray\ntime = [datetime.datetime(YYYY, M, D, H)]  # initialization time\nlead_time = [datetime.timedelta(hours=H)]   # or array of lead times\nvariable = [\"var1\", \"var2\"]\n\ndata = ds(time, lead_time, variable)\n",[817],{"type":47,"tag":85,"props":818,"children":819},{"__ignoreMap":691},[820,827,834,841,848,855,862,870,878,886,894,901],{"type":47,"tag":697,"props":821,"children":822},{"class":699,"line":700},[823],{"type":47,"tag":697,"props":824,"children":825},{},[826],{"type":53,"value":706},{"type":47,"tag":697,"props":828,"children":829},{"class":699,"line":709},[830],{"type":47,"tag":697,"props":831,"children":832},{},[833],{"type":53,"value":715},{"type":47,"tag":697,"props":835,"children":836},{"class":699,"line":718},[837],{"type":47,"tag":697,"props":838,"children":839},{"emptyLinePlaceholder":722},[840],{"type":53,"value":725},{"type":47,"tag":697,"props":842,"children":843},{"class":699,"line":728},[844],{"type":47,"tag":697,"props":845,"children":846},{},[847],{"type":53,"value":734},{"type":47,"tag":697,"props":849,"children":850},{"class":699,"line":737},[851],{"type":47,"tag":697,"props":852,"children":853},{},[854],{"type":53,"value":743},{"type":47,"tag":697,"props":856,"children":857},{"class":699,"line":746},[858],{"type":47,"tag":697,"props":859,"children":860},{"emptyLinePlaceholder":722},[861],{"type":53,"value":725},{"type":47,"tag":697,"props":863,"children":864},{"class":699,"line":754},[865],{"type":47,"tag":697,"props":866,"children":867},{},[868],{"type":53,"value":869},"# Forecast sources use: ds(time, lead_time, variable) -> xr.DataArray\n",{"type":47,"tag":697,"props":871,"children":872},{"class":699,"line":763},[873],{"type":47,"tag":697,"props":874,"children":875},{},[876],{"type":53,"value":877},"time = [datetime.datetime(YYYY, M, D, H)]  # initialization time\n",{"type":47,"tag":697,"props":879,"children":880},{"class":699,"line":772},[881],{"type":47,"tag":697,"props":882,"children":883},{},[884],{"type":53,"value":885},"lead_time = [datetime.timedelta(hours=H)]   # or array of lead times\n",{"type":47,"tag":697,"props":887,"children":888},{"class":699,"line":781},[889],{"type":47,"tag":697,"props":890,"children":891},{},[892],{"type":53,"value":893},"variable = [\"var1\", \"var2\"]\n",{"type":47,"tag":697,"props":895,"children":896},{"class":699,"line":790},[897],{"type":47,"tag":697,"props":898,"children":899},{"emptyLinePlaceholder":722},[900],{"type":53,"value":725},{"type":47,"tag":697,"props":902,"children":903},{"class":699,"line":798},[904],{"type":47,"tag":697,"props":905,"children":906},{},[907],{"type":53,"value":908},"data = ds(time, lead_time, variable)\n",{"type":47,"tag":63,"props":910,"children":911},{},[912],{"type":53,"value":913},"Always fetch the specific data source's API doc page to confirm the exact\nconstructor arguments and call signature before writing the script — they can\nvary (some need auth tokens, cache paths, specific parameters).",{"type":47,"tag":63,"props":915,"children":916},{},[917],{"type":53,"value":918},"Include in the script:",{"type":47,"tag":75,"props":920,"children":921},{},[922,927,932,958],{"type":47,"tag":79,"props":923,"children":924},{},[925],{"type":53,"value":926},"Appropriate imports",{"type":47,"tag":79,"props":928,"children":929},{},[930],{"type":53,"value":931},"Clear comments explaining each step",{"type":47,"tag":79,"props":933,"children":934},{},[935,937,943,944,950,951,957],{"type":53,"value":936},"How to inspect the result (",{"type":47,"tag":85,"props":938,"children":940},{"className":939},[],[941],{"type":53,"value":942},"print(data)",{"type":53,"value":282},{"type":47,"tag":85,"props":945,"children":947},{"className":946},[],[948],{"type":53,"value":949},"data.shape",{"type":53,"value":282},{"type":47,"tag":85,"props":952,"children":954},{"className":953},[],[955],{"type":53,"value":956},"data.coords",{"type":53,"value":110},{"type":47,"tag":79,"props":959,"children":960},{},[961],{"type":53,"value":962},"Optional: saving to file if the user requested it",{"type":47,"tag":251,"props":964,"children":966},{"id":965},"step-6-offer-next-steps",[967],{"type":53,"value":968},"Step 6. Offer next steps",{"type":47,"tag":63,"props":970,"children":971},{},[972],{"type":53,"value":973},"After delivering the script, mention:",{"type":47,"tag":75,"props":975,"children":976},{},[977,982,987],{"type":47,"tag":79,"props":978,"children":979},{},[980],{"type":53,"value":981},"How to change variables\u002Ftimes without rewriting the whole thing",{"type":47,"tag":79,"props":983,"children":984},{},[985],{"type":53,"value":986},"If they might want to feed this into a model, point them to the\ndiscover skill",{"type":47,"tag":79,"props":988,"children":989},{},[990,992,998],{"type":53,"value":991},"Cache behavior (data is cached locally after first fetch via\n",{"type":47,"tag":85,"props":993,"children":995},{"className":994},[],[996],{"type":53,"value":997},"EARTH2STUDIO_CACHE",{"type":53,"value":110},{"type":47,"tag":128,"props":1000,"children":1002},{"id":1001},"ownership-and-out-of-scope",[1003],{"type":53,"value":1004},"Ownership and out-of-scope",{"type":47,"tag":63,"props":1006,"children":1007},{},[1008,1013],{"type":47,"tag":147,"props":1009,"children":1010},{},[1011],{"type":53,"value":1012},"Owns:",{"type":53,"value":1014}," identifying data sources for a user's variable\u002Ftime request,\nverifying variable support via lexicon, generating data fetch scripts,\nexplaining analysis vs. forecast source differences.",{"type":47,"tag":63,"props":1016,"children":1017},{},[1018,1023],{"type":47,"tag":147,"props":1019,"children":1020},{},[1021],{"type":53,"value":1022},"Does not own:",{"type":53,"value":1024}," installation (earth2studio-install), model selection\n(earth2studio-discover), inference pipelines, custom data source creation\n(point to extend examples), data source authentication setup beyond what\nthe docs describe.",{"type":47,"tag":56,"props":1026,"children":1028},{"id":1027},"examples",[1029],{"type":53,"value":1030},"Examples",{"type":47,"tag":63,"props":1032,"children":1033},{},[1034],{"type":53,"value":1035},"Typical invocation:",{"type":47,"tag":1037,"props":1038,"children":1039},"blockquote",{},[1040],{"type":47,"tag":63,"props":1041,"children":1042},{},[1043],{"type":53,"value":1044},"\"I need 500 hPa geopotential height and 2m temperature from ERA5\nfor January 1, 2020 at 00Z.\"",{"type":47,"tag":63,"props":1046,"children":1047},{},[1048],{"type":53,"value":1049},"The skill would:",{"type":47,"tag":140,"props":1051,"children":1052},{},[1053,1070,1075,1080],{"type":47,"tag":79,"props":1054,"children":1055},{},[1056,1058,1064,1065],{"type":53,"value":1057},"Map plain language → ",{"type":47,"tag":85,"props":1059,"children":1061},{"className":1060},[],[1062],{"type":53,"value":1063},"z500",{"type":53,"value":282},{"type":47,"tag":85,"props":1066,"children":1068},{"className":1067},[],[1069],{"type":53,"value":280},{"type":47,"tag":79,"props":1071,"children":1072},{},[1073],{"type":53,"value":1074},"Check ARCO\u002FCDS\u002FWB2ERA5 lexicons for support",{"type":47,"tag":79,"props":1076,"children":1077},{},[1078],{"type":53,"value":1079},"Recommend ARCO (free, no API key) or CDS (official, needs key)",{"type":47,"tag":79,"props":1081,"children":1082},{},[1083],{"type":53,"value":1084},"Generate a fetch script using the selected source",{"type":47,"tag":56,"props":1086,"children":1088},{"id":1087},"limitations",[1089],{"type":53,"value":1090},"Limitations",{"type":47,"tag":75,"props":1092,"children":1093},{},[1094,1104,1130,1140,1150],{"type":47,"tag":79,"props":1095,"children":1096},{},[1097,1102],{"type":47,"tag":147,"props":1098,"children":1099},{},[1100],{"type":53,"value":1101},"Network required",{"type":53,"value":1103}," — all data sources fetch from remote stores\n(GCS, S3, CDS API)",{"type":47,"tag":79,"props":1105,"children":1106},{},[1107,1112,1114,1120,1122,1128],{"type":47,"tag":147,"props":1108,"children":1109},{},[1110],{"type":53,"value":1111},"No local file loading",{"type":53,"value":1113}," — for local NetCDF\u002FZarr, use\n",{"type":47,"tag":85,"props":1115,"children":1117},{"className":1116},[],[1118],{"type":53,"value":1119},"DataArrayFile",{"type":53,"value":1121},"\u002F",{"type":47,"tag":85,"props":1123,"children":1125},{"className":1124},[],[1126],{"type":53,"value":1127},"DataSetFile",{"type":53,"value":1129}," directly",{"type":47,"tag":79,"props":1131,"children":1132},{},[1133,1138],{"type":47,"tag":147,"props":1134,"children":1135},{},[1136],{"type":53,"value":1137},"One source type per script",{"type":53,"value":1139}," — cannot mix analysis and forecast\nsources in a single call",{"type":47,"tag":79,"props":1141,"children":1142},{},[1143,1148],{"type":47,"tag":147,"props":1144,"children":1145},{},[1146],{"type":53,"value":1147},"Variable availability varies",{"type":53,"value":1149}," — not all sources provide all\nvariables; always verify via lexicon",{"type":47,"tag":79,"props":1151,"children":1152},{},[1153,1158],{"type":47,"tag":147,"props":1154,"children":1155},{},[1156],{"type":53,"value":1157},"Rate limits",{"type":53,"value":1159}," — CDS API has queue-based throttling; GCS\u002FS3 sources\nare generally faster",{"type":47,"tag":56,"props":1161,"children":1163},{"id":1162},"troubleshooting",[1164],{"type":53,"value":1165},"Troubleshooting",{"type":47,"tag":597,"props":1167,"children":1168},{},[1169,1190],{"type":47,"tag":601,"props":1170,"children":1171},{},[1172],{"type":47,"tag":605,"props":1173,"children":1174},{},[1175,1180,1185],{"type":47,"tag":609,"props":1176,"children":1177},{},[1178],{"type":53,"value":1179},"Error",{"type":47,"tag":609,"props":1181,"children":1182},{},[1183],{"type":53,"value":1184},"Cause",{"type":47,"tag":609,"props":1186,"children":1187},{},[1188],{"type":53,"value":1189},"Solution",{"type":47,"tag":634,"props":1191,"children":1192},{},[1193,1215,1239,1261,1286],{"type":47,"tag":605,"props":1194,"children":1195},{},[1196,1205,1210],{"type":47,"tag":641,"props":1197,"children":1198},{},[1199],{"type":47,"tag":85,"props":1200,"children":1202},{"className":1201},[],[1203],{"type":53,"value":1204},"KeyError: '\u003Cvar>'",{"type":47,"tag":641,"props":1206,"children":1207},{},[1208],{"type":53,"value":1209},"Not in lexicon",{"type":47,"tag":641,"props":1211,"children":1212},{},[1213],{"type":53,"value":1214},"Check lexicon; try another source",{"type":47,"tag":605,"props":1216,"children":1217},{},[1218,1229,1234],{"type":47,"tag":641,"props":1219,"children":1220},{},[1221,1227],{"type":47,"tag":85,"props":1222,"children":1224},{"className":1223},[],[1225],{"type":53,"value":1226},"FileNotFoundError",{"type":53,"value":1228}," \u002F 404",{"type":47,"tag":641,"props":1230,"children":1231},{},[1232],{"type":53,"value":1233},"Time not available",{"type":47,"tag":641,"props":1235,"children":1236},{},[1237],{"type":53,"value":1238},"Verify temporal coverage",{"type":47,"tag":605,"props":1240,"children":1241},{},[1242,1251,1256],{"type":47,"tag":641,"props":1243,"children":1244},{},[1245],{"type":47,"tag":85,"props":1246,"children":1248},{"className":1247},[],[1249],{"type":53,"value":1250},"CDS API timeout",{"type":47,"tag":641,"props":1252,"children":1253},{},[1254],{"type":53,"value":1255},"Queue congestion",{"type":47,"tag":641,"props":1257,"children":1258},{},[1259],{"type":53,"value":1260},"Retry or use ARCO for ERA5",{"type":47,"tag":605,"props":1262,"children":1263},{},[1264,1273,1278],{"type":47,"tag":641,"props":1265,"children":1266},{},[1267],{"type":47,"tag":85,"props":1268,"children":1270},{"className":1269},[],[1271],{"type":53,"value":1272},"ModuleNotFoundError",{"type":47,"tag":641,"props":1274,"children":1275},{},[1276],{"type":53,"value":1277},"Not installed",{"type":47,"tag":641,"props":1279,"children":1280},{},[1281],{"type":47,"tag":85,"props":1282,"children":1284},{"className":1283},[],[1285],{"type":53,"value":90},{"type":47,"tag":605,"props":1287,"children":1288},{},[1289,1294,1299],{"type":47,"tag":641,"props":1290,"children":1291},{},[1292],{"type":53,"value":1293},"Empty DataArray",{"type":47,"tag":641,"props":1295,"children":1296},{},[1297],{"type":53,"value":1298},"Time\u002Fvar mismatch",{"type":47,"tag":641,"props":1300,"children":1301},{},[1302],{"type":53,"value":1303},"Check datetime and variable name",{"type":47,"tag":1305,"props":1306,"children":1307},"style",{},[1308],{"type":53,"value":1309},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1311,"total":1411},[1312,1327,1341,1353,1365,1382,1397],{"slug":1313,"name":1313,"fn":1314,"description":1315,"org":1316,"tags":1317,"stars":20,"repoUrl":21,"updatedAt":1326},"accelerated-computing-cudf","accelerate data processing with cuDF","Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby, CSV\u002FParquet I\u002FO, nullable semantics, and multi-GPU DataFrame workloads.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1318,1319,1322,1323],{"name":17,"slug":18,"type":15},{"name":1320,"slug":1321,"type":15},"Data Engineering","data-engineering",{"name":9,"slug":8,"type":15},{"name":1324,"slug":1325,"type":15},"Performance","performance","2026-07-14T05:28:43.176466",{"slug":1328,"name":1328,"fn":1329,"description":1330,"org":1331,"tags":1332,"stars":20,"repoUrl":21,"updatedAt":1340},"aiq-deploy","deploy and manage NVIDIA AI-Q infrastructure","Use when asked to install, deploy, run, validate, troubleshoot, or stop NVIDIA AI-Q Blueprint infrastructure.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1333,1336,1339],{"name":1334,"slug":1335,"type":15},"Deployment","deployment",{"name":1337,"slug":1338,"type":15},"Infrastructure","infrastructure",{"name":9,"slug":8,"type":15},"2026-07-14T05:29:06.667109",{"slug":1342,"name":1342,"fn":1343,"description":1344,"org":1345,"tags":1346,"stars":20,"repoUrl":21,"updatedAt":1352},"aiq-research","conduct deep research with AI-Q","Use when asked to run deep research or AI-Q research through a reachable NVIDIA AI-Q Blueprint backend.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1347,1350,1351],{"name":1348,"slug":1349,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},"2026-07-14T05:28:06.816956",{"slug":1354,"name":1354,"fn":1355,"description":1356,"org":1357,"tags":1358,"stars":20,"repoUrl":21,"updatedAt":1364},"amc-run-sample-calibration","run AMC sample dataset calibration","Run end-to-end calibration on the shipped sample dataset (sdg_08_2_sample_data_010926.zip) against a running AMC microservice. Use when user says 'test sample dataset', 'run sample calibration', 'verify AMC install', or 'launch and test'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1359,1360,1361],{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"name":1362,"slug":1363,"type":15},"Testing","testing","2026-07-17T05:29:03.913266",{"slug":1366,"name":1366,"fn":1367,"description":1368,"org":1369,"tags":1370,"stars":20,"repoUrl":21,"updatedAt":1381},"amc-run-video-calibration","calibrate video datasets with AutoMagicCalib","Calibrate a new dataset from pre-recorded video files via the AutoMagicCalib REST API. Use when user has local MP4s and says 'calibrate my videos', 'run AMC on these videos', or similar. For RTSP\u002Flive streams, use amc-run-rtsp-calibration instead.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1371,1374,1377,1378],{"name":1372,"slug":1373,"type":15},"Automation","automation",{"name":1375,"slug":1376,"type":15},"Imaging","imaging",{"name":9,"slug":8,"type":15},{"name":1379,"slug":1380,"type":15},"Video","video","2026-07-17T05:28:53.905004",{"slug":1383,"name":1383,"fn":1384,"description":1385,"org":1386,"tags":1387,"stars":20,"repoUrl":21,"updatedAt":1396},"amc-setup-calibration-stack","deploy AutoMagicCalib microservice with Docker","Launch AutoMagicCalib microservice and web UI from NGC release images via Docker Compose. Use when user says 'deploy auto calibration', 'launch auto calibration', 'launch AMC', 'start MS+UI', or 'set up auto-magic-calib'. Requires NGC API key.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1388,1389,1392,1393],{"name":1334,"slug":1335,"type":15},{"name":1390,"slug":1391,"type":15},"Docker","docker",{"name":9,"slug":8,"type":15},{"name":1394,"slug":1395,"type":15},"Operations","operations","2026-07-17T05:28:56.913999",{"slug":1398,"name":1398,"fn":1399,"description":1400,"org":1401,"tags":1402,"stars":20,"repoUrl":21,"updatedAt":1410},"cudaq-guide","develop quantum applications with CUDA-Q","CUDA-Q onboarding guide for installation, test programs, GPU simulation, QPU hardware, and quantum applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1403,1404,1407],{"name":9,"slug":8,"type":15},{"name":1405,"slug":1406,"type":15},"Quantum Computing","quantum-computing",{"name":1408,"slug":1409,"type":15},"Simulation","simulation","2026-07-14T05:26:58.898253",305,{"items":1413,"total":1563},[1414,1432,1447,1458,1470,1484,1497,1511,1522,1531,1545,1554],{"slug":1415,"name":1415,"fn":1416,"description":1417,"org":1418,"tags":1419,"stars":1429,"repoUrl":1430,"updatedAt":1431},"nemoclaw-user-guide","retrieve NemoClaw documentation and configuration","Guides human users' AI agents to the NemoClaw docs MCP server and canonical Fern documentation in Markdown form. Use when users ask how to install, configure, operate, troubleshoot, secure, or learn NemoClaw with an AI coding assistant. Trigger keywords - nemoclaw docs, use nemoclaw with ai agent, nemoclaw mcp docs, nemoclaw install help, nemoclaw quickstart, nemoclaw markdown docs, llms.txt, agent skills.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1420,1423,1426],{"name":1421,"slug":1422,"type":15},"Documentation","documentation",{"name":1424,"slug":1425,"type":15},"MCP","mcp",{"name":1427,"slug":1428,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":1433,"name":1433,"fn":1434,"description":1435,"org":1436,"tags":1437,"stars":1444,"repoUrl":1445,"updatedAt":1446},"mcore-build-and-dependency","manage Megatron-LM development environments","Container-based dev environment setup and dependency management for Megatron-LM. Covers acquiring and launching the CI container, uv package management, and updating uv.lock.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1438,1441,1442],{"name":1439,"slug":1440,"type":15},"Containers","containers",{"name":1334,"slug":1335,"type":15},{"name":1443,"slug":39,"type":15},"Python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":1448,"name":1448,"fn":1449,"description":1450,"org":1451,"tags":1452,"stars":1444,"repoUrl":1445,"updatedAt":1457},"mcore-bump-base-image","update NVIDIA PyTorch base images","Bump the NVIDIA PyTorch base image (`nvcr.io\u002Fnvidia\u002Fpytorch:YY.MM-py3`) used by Megatron-LM CI. Covers the two pin sites (GitHub CI in `docker\u002F.ngc_version.dev` and GitLab CI in `.gitlab\u002Fstages\u002F01.build.yml`), the post-bump CI loop (re-run functional tests, refresh golden values, mark broken tests), and the gotchas that bit PRs",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1453,1456],{"name":1454,"slug":1455,"type":15},"CI\u002FCD","ci-cd",{"name":1334,"slug":1335,"type":15},"2026-07-14T05:25:59.97109",{"slug":1459,"name":1459,"fn":1460,"description":1461,"org":1462,"tags":1463,"stars":1444,"repoUrl":1445,"updatedAt":1469},"mcore-cicd","manage CI\u002FCD pipelines for Megatron-LM","CI\u002FCD reference for Megatron-LM. Covers CI pipeline structure, PR scope labels, triggering internal GitLab CI (which force-pushes the current branch to a pull-request\u002FBRANCH ref — always dry-run and verify the destination first; never run against shared or protected branches), and CI failure investigation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1464,1465,1466],{"name":1454,"slug":1455,"type":15},{"name":1334,"slug":1335,"type":15},{"name":1467,"slug":1468,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":1471,"name":1471,"fn":1472,"description":1473,"org":1474,"tags":1475,"stars":1444,"repoUrl":1445,"updatedAt":1483},"mcore-create-issue","investigate CI failures and create issues","Investigate a failing GitHub Actions run or job and create a GitHub issue for the failure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1476,1479,1480],{"name":1477,"slug":1478,"type":15},"Debugging","debugging",{"name":1467,"slug":1468,"type":15},{"name":1481,"slug":1482,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":1485,"name":1485,"fn":1486,"description":1487,"org":1488,"tags":1489,"stars":1444,"repoUrl":1445,"updatedAt":1496},"mcore-linting-and-formatting","lint and format Megatron-LM code","Linting and formatting for Megatron-LM. Covers running autoformat.sh, tools (ruff, black, isort, pylint, mypy), and code style rules.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1490,1493],{"name":1491,"slug":1492,"type":15},"Best Practices","best-practices",{"name":1494,"slug":1495,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":1498,"name":1498,"fn":1499,"description":1500,"org":1501,"tags":1502,"stars":1444,"repoUrl":1445,"updatedAt":1510},"mcore-migrate-gpt-to-hybrid","migrate Megatron-LM models to HybridModel","Migration guide for moving Megatron Core GPTModel checkpoints, model providers, training commands, and layer mappings to HybridModel.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1503,1506,1509],{"name":1504,"slug":1505,"type":15},"Machine Learning","machine-learning",{"name":1507,"slug":1508,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":1512,"name":1512,"fn":1513,"description":1514,"org":1515,"tags":1516,"stars":1444,"repoUrl":1445,"updatedAt":1521},"mcore-onboard-gb200-1node-tests","onboard functional tests for GB200","Onboard 1-node GitHub MR functional tests for GB200 from existing mr-scoped 2-node tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1517,1520],{"name":1518,"slug":1519,"type":15},"QA","qa",{"name":1362,"slug":1363,"type":15},"2026-07-14T05:25:53.673039",{"slug":1523,"name":1523,"fn":1524,"description":1525,"org":1526,"tags":1527,"stars":1444,"repoUrl":1445,"updatedAt":1530},"mcore-run-on-slurm","launch distributed training jobs on SLURM","How to launch distributed Megatron-LM training jobs on a SLURM cluster. Covers a minimal sbatch skeleton, environment-variable setup for torch.distributed.run, CUDA_DEVICE_MAX_CONNECTIONS rules across hardware and parallelism modes, container conventions, monitoring, and per-rank failure diagnosis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1528,1529],{"name":1334,"slug":1335,"type":15},{"name":1337,"slug":1338,"type":15},"2026-07-14T05:25:49.362534",{"slug":1532,"name":1532,"fn":1533,"description":1534,"org":1535,"tags":1536,"stars":1444,"repoUrl":1445,"updatedAt":1544},"mcore-split-pr","split pull requests to reduce review load","Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1537,1540,1541],{"name":1538,"slug":1539,"type":15},"Code Review","code-review",{"name":1467,"slug":1468,"type":15},{"name":1542,"slug":1543,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":1546,"name":1546,"fn":1547,"description":1548,"org":1549,"tags":1550,"stars":1444,"repoUrl":1445,"updatedAt":1553},"mcore-testing","run and manage Megatron-LM tests","Test system for Megatron-LM. Covers test layout, recipe YAML structure, adding and running unit and functional tests, golden values, marker filters, and CI parity.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1551,1552],{"name":1518,"slug":1519,"type":15},{"name":1362,"slug":1363,"type":15},"2026-07-14T05:25:54.928983",{"slug":1555,"name":1555,"fn":1556,"description":1557,"org":1558,"tags":1559,"stars":1444,"repoUrl":1445,"updatedAt":1562},"nightly-sync","manage nightly main-to-dev sync workflows","Domain knowledge for the nightly main-to-dev sync workflow. Covers merge strategy, CI architecture, failure investigation, and known issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1560,1561],{"name":1372,"slug":1373,"type":15},{"name":1454,"slug":1455,"type":15},"2026-07-30T05:29:03.275638",496]