[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6XFT0TNSNBTB95RE60QS1AC":3,"skill-same:01M6XFT0TNSNBTB95RE60QS1AC":86},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":46,"linkOnly":47,"markdownContent":48,"markdownBody":49,"frontMatter":50,"refName":66,"commitSha":67,"skillDirectory":68,"forksCount":14,"repositoryHtmlUrl":69,"repositoryHomepageUrl":6,"ownerHtmlUrl":70,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":71,"install":72,"resources":85},"01M6XFT0TNSNBTB95RE60QS1AC","hdf5-pde-data-loading",null,"Patterns for loading PDE simulation datasets (PDEBench, PhiFlow, JAX-CFD) from HDF5 files. Handles layout detection (single tensor vs separate variables), spatial\u002Ftemporal downsampling, multi-variable systems, HuggingFace and DaRUS data sources, and efficient PyTorch DataLoader creation. Use when preparing PDE data for neural operator training.","fadrienne\u002FMyGitHub","fadrienne","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F197874571?v=4","01M6X64V8VWCRSMFZ4EPS2BWXG","Francesca Adrienne","01M6X64VD5MW4F9PHDWQKS7ZAF",0,"MIT","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fdata-engineering\u002Fhdf5-pde-data-loading\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"data loading","hdf5 pde data loading","data","HDF5","pde","loading","synthetic","Neural Operator","when","data sources","for","Variables","CFD","sources","pytorch","creation","layout","patterns","files","simulation","operator","training","2026-11-10 10:12:30",false,"---\nname: hdf5-pde-data-loading\ndescription: Patterns for loading PDE simulation datasets (PDEBench, PhiFlow, JAX-CFD) from HDF5 files. Handles layout detection (single tensor vs separate variables), spatial\u002Ftemporal downsampling, multi-variable systems, HuggingFace and DaRUS data sources, and efficient PyTorch DataLoader creation. Use when preparing PDE data for neural operator training.\ncategory: data-engineering\nversion: 1.0.0\nauthor: Synthetic Sciences\nlicense: MIT\ntags: [HDF5, Data Loading, PDE, PyTorch, DataLoader, Downsampling, PDEBench]\ndependencies: [\"h5py\", \"numpy\", \"torch\", \"huggingface-hub\"]\n---\n\n# HDF5 PDE Data Loading\n\n## When to Use\n- Loading PDE simulation datasets stored in HDF5 format\n- PDEBench, PhiFlow, JAX-CFD, or custom simulation outputs\n- Multi-variable systems (density, velocity, pressure, etc.)\n- Need to downsample spatial\u002Ftemporal dimensions for memory\n\n## HDF5 Layout Detection\n\nPDE datasets come in two common layouts:\n\n### Layout 1: Single \"tensor\" dataset\n```python\nwith h5py.File(path, \"r\") as f:\n    if \"tensor\" in f:\n        ds = f[\"tensor\"]  # shape: [N, T, X, C] or [N, T, X]\n```\n\n### Layout 2: Separate variable datasets\n```python\nwith h5py.File(path, \"r\") as f:\n    # Keys like: \"density\", \"Vx\", \"pressure\", or \"t\", \"x\", \"u\"\n    rho = f[\"density\"][:]  # [N, T, X]\n    vel = f[\"Vx\"][:]\n    prs = f[\"pressure\"][:]\n    data = np.stack([rho, vel, prs], axis=-1)  # [N, T, X, 3]\n```\n\n### Robust loading (handles both):\n```python\ndef load_pde_hdf5(path, res_x=1, res_t=1):\n    \"\"\"Load PDE data from HDF5, handling multiple layouts.\"\"\"\n    with h5py.File(path, \"r\") as f:\n        print(f\"Keys: {list(f.keys())}\")\n\n        if \"tensor\" in f:\n            ds = f[\"tensor\"]\n            raw_shape = ds.shape\n            if len(raw_shape) == 4:\n                N, T, X, C = raw_shape\n            else:\n                N, T, X = raw_shape; C = 1\n\n            X_ds = X \u002F\u002F res_x\n            T_ds = T \u002F\u002F res_t if res_t > 1 else T\n            data = np.empty((N, X_ds, T_ds, C if len(raw_shape)==4 else 1), dtype=np.float32)\n\n            for s in range(0, N, 500):  # Chunk to avoid OOM\n                e = min(s + 500, N)\n                chunk = ds[s:e, ::res_t, ::res_x]\n                if len(chunk.shape) == 3:\n                    data[s:e, :, :, 0] = np.transpose(chunk, (0, 2, 1))\n                else:\n                    data[s:e] = np.transpose(chunk, (0, 2, 1, 3))\n        else:\n            # Separate variables — find and stack them\n            var_keys = []\n            for k in sorted(f.keys()):\n                if isinstance(f[k], h5py.Dataset) and len(f[k].shape) >= 3:\n                    var_keys.append(k)\n\n            arrays = [f[k][:, ::res_t, ::res_x] for k in var_keys]\n            raw = np.stack(arrays, axis=-1)  # [N, T, X, C]\n            data = np.transpose(raw, (0, 2, 1, 3)).astype(np.float32)\n\n        # Load grid coordinates\n        for grid_key in [\"x-coordinate\", \"x\", \"X\"]:\n            if grid_key in f:\n                grid = np.array(f[grid_key], dtype=np.float32)[::res_x]\n                break\n        else:\n            grid = np.linspace(0, 1, data.shape[1], dtype=np.float32)\n\n    return data, grid  # data: [N, X, T, C], grid: [X]\n```\n\n## Data Sources\n\n### HuggingFace Hub (fast CDN, preferred):\n```python\nfrom huggingface_hub import hf_hub_download\npath = hf_hub_download(\n    repo_id=\"pdebench\u002FAdvection\",           # or pdebench\u002FBurgers\n    filename=\"1D_Advection_Sols_beta1.0.hdf5\",\n    repo_type=\"dataset\",\n    cache_dir=\"\u002Ftmp\u002Fhf_cache\",\n)\n```\n\n**Known HF repos:** `pdebench\u002FAdvection`, `pdebench\u002FBurgers`, `pdebench\u002FPDEBench`\n**NOT on HF:** ReacDiff, 1D CFD — use DaRUS instead.\n\n### DaRUS (Stuttgart data repository):\n```python\nimport subprocess\nurl = f\"https:\u002F\u002Fdarus.uni-stuttgart.de\u002Fapi\u002Faccess\u002Fdatafile\u002F{file_id}\"\nsubprocess.run([\n    \"aria2c\", \"-x\", \"16\", \"-s\", \"16\",\n    \"--max-connection-per-server=16\",\n    \"--min-split-size=10M\", \"--timeout=600\", \"--max-tries=5\",\n    \"-d\", \"\u002Ftmp\", \"-o\", filename, url\n], check=True, timeout=3600)\n```\n\nInstall aria2: `apt install aria2` (in Modal: `.apt_install(\"aria2\")`)\n\n### Finding DaRUS file IDs:\n```python\nimport urllib.request\ncsv_url = \"https:\u002F\u002Fraw.githubusercontent.com\u002Fpdebench\u002FPDEBench\u002Fmain\u002Fpdebench\u002Fdata_download\u002Fpdebench_data_urls.csv\"\ndata = urllib.request.urlopen(csv_url).read().decode()\nfor line in data.split('\\n'):\n    if 'your_dataset' in line:\n        print(line)  # filename, URL, path, md5\n```\n\n## PyTorch DataLoader Setup\n\n```python\nclass PDEDS(Dataset):\n    def __init__(self, data, grid, init_step=10):\n        self.data = data      # [N, X, T, C]\n        self.grid = grid      # [X, 1]\n        self.init_step = init_step\n\n    def __len__(self):\n        return self.data.shape[0]\n\n    def __getitem__(self, i):\n        x = self.data[i, :, :self.init_step, :]  # Input window\n        y = self.data[i]                           # Full trajectory (for AR loss)\n        return x, y, self.grid\n\ntrain_loader = DataLoader(\n    PDEDS(data[:N_TRAIN], grid, INIT_STEP),\n    batch_size=32, shuffle=True, num_workers=2, pin_memory=True\n)\n```\n\n## Downsampling Guidelines\n\n| Original | Downsampled | Factor | Use When |\n|---|---|---|---|\n| 1024 spatial | 256 | 4× | Smooth problems, standard benchmarks |\n| 1024 spatial | 512 | 2× | Moderate shocks, multi-variable |\n| 1024 spatial | 1024 | 1× | Sharp shocks (ν≤0.001), needs A100 |\n| 200 temporal | 40 | 5× | Standard (10 input + 30 rollout) |\n| 100 temporal | 20 | 5× | Short series (10 input + 10 rollout) |\n\n**Warning:** Downsampling shocks can destroy them entirely. At 256 points, a shock of width 0.001 spans \u003C1 grid cell.\n\n## Common Pitfalls\n\n| Pitfall | Symptom | Fix |\n|---|---|---|\n| Wrong transpose order | Model diverges | Always: [N,T,X,C] → [N,X,T,C] |\n| Not chunking large reads | OOM during loading | Read in batches of 500 |\n| HF repo doesn't exist | FileNotFoundError | Fall back to DaRUS with aria2c |\n| x-coordinate key missing | Wrong grid spacing | Fall back to linspace |\n| File truncated (partial download) | HDF5 read error | Check file size, re-download |\n| dtype mismatch (float64 vs float32) | Slow training, high memory | Cast to float32 explicitly |\n","# HDF5 PDE Data Loading\n\n## When to Use\n- Loading PDE simulation datasets stored in HDF5 format\n- PDEBench, PhiFlow, JAX-CFD, or custom simulation outputs\n- Multi-variable systems (density, velocity, pressure, etc.)\n- Need to downsample spatial\u002Ftemporal dimensions for memory\n\n## HDF5 Layout Detection\n\nPDE datasets come in two common layouts:\n\n### Layout 1: Single \"tensor\" dataset\n```python\nwith h5py.File(path, \"r\") as f:\n    if \"tensor\" in f:\n        ds = f[\"tensor\"]  # shape: [N, T, X, C] or [N, T, X]\n```\n\n### Layout 2: Separate variable datasets\n```python\nwith h5py.File(path, \"r\") as f:\n    # Keys like: \"density\", \"Vx\", \"pressure\", or \"t\", \"x\", \"u\"\n    rho = f[\"density\"][:]  # [N, T, X]\n    vel = f[\"Vx\"][:]\n    prs = f[\"pressure\"][:]\n    data = np.stack([rho, vel, prs], axis=-1)  # [N, T, X, 3]\n```\n\n### Robust loading (handles both):\n```python\ndef load_pde_hdf5(path, res_x=1, res_t=1):\n    \"\"\"Load PDE data from HDF5, handling multiple layouts.\"\"\"\n    with h5py.File(path, \"r\") as f:\n        print(f\"Keys: {list(f.keys())}\")\n\n        if \"tensor\" in f:\n            ds = f[\"tensor\"]\n            raw_shape = ds.shape\n            if len(raw_shape) == 4:\n                N, T, X, C = raw_shape\n            else:\n                N, T, X = raw_shape; C = 1\n\n            X_ds = X \u002F\u002F res_x\n            T_ds = T \u002F\u002F res_t if res_t > 1 else T\n            data = np.empty((N, X_ds, T_ds, C if len(raw_shape)==4 else 1), dtype=np.float32)\n\n            for s in range(0, N, 500):  # Chunk to avoid OOM\n                e = min(s + 500, N)\n                chunk = ds[s:e, ::res_t, ::res_x]\n                if len(chunk.shape) == 3:\n                    data[s:e, :, :, 0] = np.transpose(chunk, (0, 2, 1))\n                else:\n                    data[s:e] = np.transpose(chunk, (0, 2, 1, 3))\n        else:\n            # Separate variables — find and stack them\n            var_keys = []\n            for k in sorted(f.keys()):\n                if isinstance(f[k], h5py.Dataset) and len(f[k].shape) >= 3:\n                    var_keys.append(k)\n\n            arrays = [f[k][:, ::res_t, ::res_x] for k in var_keys]\n            raw = np.stack(arrays, axis=-1)  # [N, T, X, C]\n            data = np.transpose(raw, (0, 2, 1, 3)).astype(np.float32)\n\n        # Load grid coordinates\n        for grid_key in [\"x-coordinate\", \"x\", \"X\"]:\n            if grid_key in f:\n                grid = np.array(f[grid_key], dtype=np.float32)[::res_x]\n                break\n        else:\n            grid = np.linspace(0, 1, data.shape[1], dtype=np.float32)\n\n    return data, grid  # data: [N, X, T, C], grid: [X]\n```\n\n## Data Sources\n\n### HuggingFace Hub (fast CDN, preferred):\n```python\nfrom huggingface_hub import hf_hub_download\npath = hf_hub_download(\n    repo_id=\"pdebench\u002FAdvection\",           # or pdebench\u002FBurgers\n    filename=\"1D_Advection_Sols_beta1.0.hdf5\",\n    repo_type=\"dataset\",\n    cache_dir=\"\u002Ftmp\u002Fhf_cache\",\n)\n```\n\n**Known HF repos:** `pdebench\u002FAdvection`, `pdebench\u002FBurgers`, `pdebench\u002FPDEBench`\n**NOT on HF:** ReacDiff, 1D CFD — use DaRUS instead.\n\n### DaRUS (Stuttgart data repository):\n```python\nimport subprocess\nurl = f\"https:\u002F\u002Fdarus.uni-stuttgart.de\u002Fapi\u002Faccess\u002Fdatafile\u002F{file_id}\"\nsubprocess.run([\n    \"aria2c\", \"-x\", \"16\", \"-s\", \"16\",\n    \"--max-connection-per-server=16\",\n    \"--min-split-size=10M\", \"--timeout=600\", \"--max-tries=5\",\n    \"-d\", \"\u002Ftmp\", \"-o\", filename, url\n], check=True, timeout=3600)\n```\n\nInstall aria2: `apt install aria2` (in Modal: `.apt_install(\"aria2\")`)\n\n### Finding DaRUS file IDs:\n```python\nimport urllib.request\ncsv_url = \"https:\u002F\u002Fraw.githubusercontent.com\u002Fpdebench\u002FPDEBench\u002Fmain\u002Fpdebench\u002Fdata_download\u002Fpdebench_data_urls.csv\"\ndata = urllib.request.urlopen(csv_url).read().decode()\nfor line in data.split('\\n'):\n    if 'your_dataset' in line:\n        print(line)  # filename, URL, path, md5\n```\n\n## PyTorch DataLoader Setup\n\n```python\nclass PDEDS(Dataset):\n    def __init__(self, data, grid, init_step=10):\n        self.data = data      # [N, X, T, C]\n        self.grid = grid      # [X, 1]\n        self.init_step = init_step\n\n    def __len__(self):\n        return self.data.shape[0]\n\n    def __getitem__(self, i):\n        x = self.data[i, :, :self.init_step, :]  # Input window\n        y = self.data[i]                           # Full trajectory (for AR loss)\n        return x, y, self.grid\n\ntrain_loader = DataLoader(\n    PDEDS(data[:N_TRAIN], grid, INIT_STEP),\n    batch_size=32, shuffle=True, num_workers=2, pin_memory=True\n)\n```\n\n## Downsampling Guidelines\n\n| Original | Downsampled | Factor | Use When |\n|---|---|---|---|\n| 1024 spatial | 256 | 4× | Smooth problems, standard benchmarks |\n| 1024 spatial | 512 | 2× | Moderate shocks, multi-variable |\n| 1024 spatial | 1024 | 1× | Sharp shocks (ν≤0.001), needs A100 |\n| 200 temporal | 40 | 5× | Standard (10 input + 30 rollout) |\n| 100 temporal | 20 | 5× | Short series (10 input + 10 rollout) |\n\n**Warning:** Downsampling shocks can destroy them entirely. At 256 points, a shock of width 0.001 spans \u003C1 grid cell.\n\n## Common Pitfalls\n\n| Pitfall | Symptom | Fix |\n|---|---|---|\n| Wrong transpose order | Model diverges | Always: [N,T,X,C] → [N,X,T,C] |\n| Not chunking large reads | OOM during loading | Read in batches of 500 |\n| HF repo doesn't exist | FileNotFoundError | Fall back to DaRUS with aria2c |\n| x-coordinate key missing | Wrong grid spacing | Fall back to linspace |\n| File truncated (partial download) | HDF5 read error | Check file size, re-download |\n| dtype mismatch (float64 vs float32) | Slow training, high memory | Cast to float32 explicitly |\n",{"name":5,"tags":51,"author":58,"license":15,"version":59,"category":60,"description":7,"dependencies":61},[27,52,53,54,55,56,57],"Data Loading","PDE","PyTorch","DataLoader","Downsampling","PDEBench","Synthetic Sciences","1.0.0","data-engineering",[62,63,64,65],"h5py","numpy","torch","huggingface-hub","main","4aa39efd1cdab0b4657ecee16c92a92011a5b10f","openscience\u002Fbackend\u002Fcli\u002Fskills\u002Fdata-engineering\u002Fhdf5-pde-data-loading","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub","https:\u002F\u002Fgithub.com\u002Ffadrienne","2026-10-28 00:43:09",{"source":8,"skillName":5,"commands":73,"prompt":83,"zipAvailable":84},[74,77,80],{"tool":75,"command":76},"npx","npx skills add fadrienne\u002FMyGitHub --skill hdf5-pde-data-loading",{"tool":78,"command":79},"bunx","bunx skills add fadrienne\u002FMyGitHub --skill hdf5-pde-data-loading",{"tool":81,"command":82},"pnpm","pnpm dlx skills add fadrienne\u002FMyGitHub --skill hdf5-pde-data-loading","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fdata-engineering\u002Fhdf5-pde-data-loading\u002FSKILL.md",true,[],[87,117,142,174,201,228],{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":98,"publishedAt":46},"01M7167B28PK20HP7R7ZED2DY0","statistical-power","Sample size calculation, power analysis, and effect size conversion for scientific studies. Use BEFORE data collection (a priori) to determine required N, or after (post-hoc) to compute achieved power. Covers parametric tests (t-test, ANOVA, chi-square, proportions, correlation, regression), simulation-based power for complex\u002Fclustered\u002Fnested designs, and power curves. Use this skill when someone asks 'how many samples do I need', 'what is my power', 'what effect size can I detect', or any variant. Pairs with \u002Fexperimental-design (choose design first, then compute power) and \u002Fstatistical-analysis (analyze data after collection).","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fstatistical-power\u002FSKILL.md",[93],{"categoryNo":94,"categoryName":95,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[99,100,101,102,103,104,105,106,32,107,108,109,110,111,112,113,114,115,43,116],"power","statistical power","effect","scipy","regression","choose","design","uv","Bash","collection","analysis","calculation","ANOVA","conversion","analyze","t-test","chi-square","sample",{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":126,"publishedAt":46},"01M71677EBCM8EPCE9BZCK8505","statistical-analysis","Guided statistical analysis with test selection and reporting. Use when you need help choosing appropriate tests for your data, assumption checking, power analysis, and APA-formatted results. Best for academic research reporting, test selection guidance. For implementing specific models programmatically use statsmodels.","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fstatistical-analysis\u002FSKILL.md",[123],{"categoryNo":124,"categoryName":125,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000008","测试与质量",[109,127,99,128,129,130,32,131,132,26,34,133,134,135,136,137,138,139,140,141],"statistical analysis","academic research","implementing","selection","you","reporting","tests","use","with","test","research","results","statsmodels","models","help",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":155,"publishedAt":46},"01M71673R93XAHFH81DBNVNG7H","scientific-writing","Core skill for the deep research and writing tool. Write scientific manuscripts in full paragraphs (never bullet points). Use two-stage process with (1) section outlines with key points using research-lookup then (2) convert to flowing prose. IMRAD structure, citations (APA\u002FAMA\u002FVancouver), figures\u002Ftables, reporting guidelines (CONSORT\u002FSTROBE\u002FPRISMA), for research papers and journal submissions.","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fscientific-writing\u002FSKILL.md",[148,151,152],{"categoryNo":149,"categoryName":150,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":94,"categoryName":95,"taxonomyType":96,"taxonomyTypeDesc":97},{"categoryNo":153,"categoryName":154,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000036","内容创作者",[156,157,158,159,160,161,162,163,164,165,107,166,167,168,169,170,171,172,132,173],"writing","scientific","scientific writing","Citations","deep","deep research","never","papers","journal","false","api","prisma","structure","openrouter","Outlines","core skill","read","features",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":184,"publishedAt":46},"01M7166ZPKXBF4EBPHVTJPQBB1","scientific-visualization","Meta-skill for publication-ready figures. Use when creating journal submission figures requiring multi-panel layouts, significance annotations, error bars, colorblind-safe palettes, and specific journal formatting (Nature, Science, Cell). Orchestrates matplotlib\u002Fseaborn\u002Fplotly with publication styles. For quick exploration use seaborn or plotly directly.","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fscientific-visualization\u002FSKILL.md",[180,183],{"categoryNo":181,"categoryName":182,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":94,"categoryName":95,"taxonomyType":96,"taxonomyTypeDesc":97},[185,157,186,187,188,189,190,191,192,164,32,193,194,195,196,197,198,199,34,200],"visualization","scientific visualization","error","ready","quick","exploration","meta-skill","Meta","safe","plotly","annotations","formatting","Publication","figures","panel","submission",{"skillNo":202,"name":203,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":205,"categories":206,"keywords":213,"publishedAt":46},"01M7166VXJWQSSC3RQZP60WBGR","research-code","Debug, profile, review, and restructure Python research and analysis code. Use when analysis scripts crash, produce wrong results, run too slowly, or need a correctness review. Covers: reading tracebacks and diagnosing root causes, hypothesis-driven debugging, reviewing code for common statistical\u002Fnumerical errors, profiling data pipelines, improving reproducibility (seeds, environments, determinism), and structuring analysis scripts for sharing. Distinct from \u002Fexploratory-data-analysis (which understands data) and \u002Fstatistical-analysis (which chooses and runs tests) — this skill focuses on the code itself.","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fresearch-code\u002FSKILL.md",[207,210],{"categoryNo":208,"categoryName":209,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":211,"categoryName":212,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师",[214,215,137,216,217,218,219,106,220,32,107,109,221,222,223,224,225,226,172,227],"code","research code","which","memory","data-analysis","errors","debugging","common","review","data pipelines","run","scripts","line","write",{"skillNo":229,"name":230,"nameZh":6,"description":231,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":232,"licenseFileUrl":6,"sourceHtmlUrl":233,"categories":234,"keywords":241,"publishedAt":46},"01M7166CF5HSR7SVZYZFWTDX55","markdown-mermaid-writing","Comprehensive markdown and Mermaid diagram writing skill. Use when creating any scientific document, report, analysis, or visualization. Establishes text-based diagrams as the default documentation standard with full style guides (markdown + mermaid), 24 diagram type references, and 9 document templates.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fmarkdown-mermaid-writing\u002FSKILL.md",[235,238,239,240],{"categoryNo":236,"categoryName":237,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000002","文档处理",{"categoryNo":149,"categoryName":150,"taxonomyType":96,"taxonomyTypeDesc":97},{"categoryNo":94,"categoryName":95,"taxonomyType":96,"taxonomyTypeDesc":97},{"categoryNo":153,"categoryName":154,"taxonomyType":21,"taxonomyTypeDesc":22},[156,242,243,244,245,246,185,247,248,32,107,109,249,250,251,252,253,254,157,172],"markdown mermaid writing","mermaid","markdown","community","diagrams","project","default","team","guides","text","documentation","references","diagram"]