{"id":402,"date":"2026-08-27T08:35:41","date_gmt":"2026-08-27T00:35:41","guid":{"rendered":"https:\/\/numsimlab.com\/?p=402"},"modified":"2026-08-27T08:35:41","modified_gmt":"2026-08-27T00:35:41","slug":"ert-%e7%94%b5%e9%98%bb%e7%8e%87%e5%b1%82%e6%9e%90%e6%88%90%e5%83%8f-electrical-resistivity-tomography","status":"publish","type":"post","link":"https:\/\/numsimlab.com\/?p=402","title":{"rendered":"ERT \u7535\u963b\u7387\u5c42\u6790\u6210\u50cf | Electrical Resistivity Tomography"},"content":{"rendered":"\n<style>\n    \/* === CSS Variables & Theme System === *\/\n    :root {\n      --bg: #f8f9fb;\n      --bg2: #ffffff;\n      --bg2-rgb: 255, 255, 255;\n      --ink: #1e293b;\n      --muted: #64748b;\n      --rule: #e2e8f0;\n      --accent: #0ea5a4;\n      --accent2: #f59e0b;\n      --accent-light: rgba(14, 165, 164, 0.08);\n      --accent2-light: rgba(245, 158, 11, 0.08);\n      --shadow: rgba(30, 41, 59, 0.06);\n      --shadow-lg: rgba(30, 41, 59, 0.1);\n      --code-bg: #f1f5f9;\n      --code-ink: #334155;\n      --code-header-bg: rgba(0, 0, 0, 0.03);\n      --code-inline-bg: rgba(0, 0, 0, 0.05);\n      --success: #10b981;\n      --warning: #f59e0b;\n      --danger: #ef4444;\n      --font: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Microsoft YaHei\", \"PingFang SC\", \"Noto Sans CJK SC\", sans-serif;\n      --font-mono: \"JetBrains Mono\", \"Fira Code\", \"Cascadia Code\", Consolas, \"Courier New\", monospace;\n      --max: 980px;\n      --radius: 12px;\n      --radius-sm: 8px;\n    }\n\n    [data-theme=\"dark\"] {\n      --bg: #0f172a;\n      --bg2: #1e293b;\n      --bg2-rgb: 30, 41, 59;\n      --ink: #f1f5f9;\n      --muted: #94a3b8;\n      --rule: #334155;\n      --accent: #2dd4bf;\n      --accent2: #fbbf24;\n      --accent-light: rgba(45, 212, 191, 0.1);\n      --accent2-light: rgba(251, 191, 36, 0.1);\n      --shadow: rgba(0, 0, 0, 0.25);\n      --shadow-lg: rgba(0, 0, 0, 0.35);\n      --code-bg: #1e293b;\n      --code-ink: #e2e8f0;\n      --code-header-bg: rgba(255, 255, 255, 0.03);\n      --code-inline-bg: rgba(255, 255, 255, 0.06);\n    }\n\n    \/* === Base === *\/\n    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n    html { font-size: 16px; scroll-behavior: smooth; }\n    body {\n      font-family: var(--font);\n      color: var(--ink);\n      background: var(--bg);\n      line-height: 1.75;\n      transition: background 0.3s ease, color 0.3s ease;\n      -webkit-font-smoothing: antialiased;\n    }\n\n    \/* === Typography === *\/\n    h1, h2, h3, h4 { font-weight: 700; line-height: 1.3; letter-spacing: -0.02em; }\n    h1 { font-size: clamp(2rem, 5vw, 3rem); }\n    h2 { font-size: clamp(1.5rem, 3vw, 2rem); margin-top: 3rem; margin-bottom: 1rem; }\n    h3 { font-size: clamp(1.1rem, 2vw, 1.35rem); margin-top: 2rem; margin-bottom: 0.75rem; }\n    p { margin-bottom: 1rem; color: var(--muted); }\n    strong { color: var(--ink); font-weight: 600; }\n    a { color: var(--accent); text-decoration: none; }\n    a:hover { text-decoration: underline; }\n    code { font-family: var(--font-mono); }\n    p > code, li > code {\n      background: var(--code-inline-bg); padding: 0.15em 0.4em;\n      border-radius: 4px; font-size: 0.875em; color: var(--ink);\n    }\n\n    \/* === Layout === *\/\n    .container { max-width: var(--max); margin: 0 auto; padding: 0 1.5rem; }\n    section { margin-bottom: 4rem; scroll-margin-top: 70px; }\n\n    \/* === Reading Progress Bar === *\/\n    .progress-bar {\n      position: fixed; top: 0; left: 0; height: 3px; width: 0;\n      background: linear-gradient(90deg, var(--accent), var(--accent2));\n      z-index: 200; transition: width 0.1s ease;\n    }\n\n    \/* === Navigation === *\/\n    nav {\n      position: sticky; top: 0; z-index: 100;\n      background: rgba(var(--bg2-rgb), 0.85);\n      backdrop-filter: blur(12px);\n      -webkit-backdrop-filter: blur(12px);\n      border-bottom: 1px solid var(--rule);\n      transition: background 0.3s ease, box-shadow 0.3s ease;\n    }\n    nav.scrolled { box-shadow: 0 2px 12px var(--shadow); }\n    .nav-inner {\n      max-width: var(--max); margin: 0 auto; padding: 0.75rem 1.5rem;\n      display: flex; justify-content: space-between; align-items: center; gap: 1rem;\n    }\n    .nav-brand {\n      font-weight: 700; font-size: 1.25rem; color: var(--ink);\n      display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0;\n    }\n    .nav-brand svg { width: 28px; height: 28px; }\n    .nav-links {\n      display: flex; gap: 0.25rem; flex: 1; justify-content: center;\n      overflow-x: auto; scrollbar-width: none;\n    }\n    .nav-links::-webkit-scrollbar { display: none; }\n    .nav-link {\n      padding: 0.375rem 0.75rem; border-radius: var(--radius-sm);\n      color: var(--muted); font-size: 0.8125rem; font-weight: 500;\n      white-space: nowrap; cursor: pointer; transition: all 0.2s ease;\n      border: none; background: none; font-family: var(--font);\n    }\n    .nav-link:hover { color: var(--ink); background: var(--accent-light); }\n    .nav-link.active { color: var(--accent); background: var(--accent-light); font-weight: 600; }\n    .nav-actions { display: flex; gap: 0.5rem; align-items: center; flex-shrink: 0; }\n    .btn-icon {\n      width: 36px; height: 36px; border-radius: var(--radius-sm);\n      border: 1px solid var(--rule); background: var(--bg2); color: var(--ink);\n      cursor: pointer; display: flex; align-items: center; justify-content: center;\n      transition: all 0.2s ease; font-size: 0.875rem;\n    }\n    .btn-icon:hover { background: var(--accent-light); border-color: var(--accent); }\n    .btn-icon.active { background: var(--accent); color: #fff; border-color: var(--accent); }\n\n    \/* Language toggle: \u4e2d\/EN *\/\n    .lang-toggle {\n      width: auto; padding: 0 0.625rem; gap: 0;\n      font-size: 0.8125rem; font-family: var(--font);\n      letter-spacing: 0.02em;\n    }\n    .lang-toggle .lang-zh,\n    .lang-toggle .lang-en {\n      transition: opacity 0.2s ease, font-weight 0.2s ease;\n    }\n    .lang-toggle .lang-sep {\n      margin: 0 0.15rem; opacity: 0.3; font-weight: 400;\n    }\n\n    \/* === Hero === *\/\n    .hero {\n      padding: 4rem 0 3rem;\n      text-align: center;\n      position: relative;\n      overflow: hidden;\n    }\n    .hero::before {\n      content: '';\n      position: absolute; top: -50%; left: -50%; width: 200%; height: 200%;\n      background:\n        radial-gradient(circle at 30% 30%, rgba(14, 165, 164, 0.1) 0%, transparent 50%),\n        radial-gradient(circle at 70% 70%, rgba(245, 158, 11, 0.07) 0%, transparent 50%);\n      pointer-events: none;\n    }\n    .hero-badge {\n      display: inline-flex; align-items: center; gap: 0.5rem;\n      padding: 0.375rem 1rem; border-radius: 9999px;\n      background: var(--accent-light); color: var(--accent);\n      font-size: 0.875rem; font-weight: 500; margin-bottom: 1.5rem;\n      position: relative;\n    }\n    .hero h1 {\n      background: linear-gradient(135deg, var(--ink) 0%, var(--accent) 100%);\n      -webkit-background-clip: text; -webkit-text-fill-color: transparent;\n      background-clip: text; margin-bottom: 1rem; position: relative;\n    }\n    [data-theme=\"dark\"] .hero h1 {\n      background: linear-gradient(135deg, #fff 0%, var(--accent) 100%);\n      -webkit-background-clip: text; background-clip: text;\n      -webkit-text-fill-color: transparent;\n    }\n    .hero-subtitle {\n      font-size: clamp(1rem, 2vw, 1.25rem); color: var(--muted);\n      max-width: 640px; margin: 0 auto 2rem; position: relative;\n    }\n    .hero-actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; position: relative; }\n    .btn {\n      padding: 0.75rem 1.5rem; border-radius: var(--radius-sm); font-weight: 600;\n      cursor: pointer; transition: all 0.2s ease; border: none; font-size: 1rem;\n      display: inline-flex; align-items: center; gap: 0.5rem;\n    }\n    .btn-primary {\n      background: linear-gradient(135deg, var(--accent), var(--accent2));\n      color: #fff; box-shadow: 0 4px 14px rgba(14, 165, 164, 0.3);\n    }\n    .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(14, 165, 164, 0.4); }\n    .btn-secondary {\n      background: var(--bg2); color: var(--ink); border: 1px solid var(--rule);\n    }\n    .btn-secondary:hover { background: var(--accent-light); border-color: var(--accent); }\n\n    \/* === Cards === *\/\n    .card-grid {\n      display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));\n      gap: 1.5rem; margin-top: 1.5rem;\n    }\n    .card {\n      background: var(--bg2);\n      border: 1px solid var(--rule);\n      border-radius: var(--radius);\n      padding: 1.5rem;\n      transition: all 0.3s ease;\n      position: relative;\n      overflow: hidden;\n    }\n    .card::before {\n      content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;\n      background: linear-gradient(90deg, var(--accent), var(--accent2));\n      opacity: 0; transition: opacity 0.3s ease;\n    }\n    .card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px var(--shadow-lg); }\n    .card:hover::before { opacity: 1; }\n    .card-icon {\n      width: 40px; height: 40px; border-radius: var(--radius-sm);\n      background: var(--accent-light); color: var(--accent);\n      display: flex; align-items: center; justify-content: center;\n      margin-bottom: 1rem; font-size: 1.25rem;\n    }\n    .card h3 { margin-top: 0; margin-bottom: 0.5rem; font-size: 1.1rem; }\n    .card p { font-size: 0.9375rem; margin-bottom: 0; }\n\n    \/* === Code Blocks === *\/\n    .code-block {\n      background: var(--code-bg);\n      border: 1px solid var(--rule);\n      border-radius: var(--radius);\n      overflow: hidden; margin: 1.5rem 0;\n    }\n    .code-header {\n      display: flex; justify-content: space-between; align-items: center;\n      padding: 0.75rem 1rem; background: var(--code-header-bg);\n      border-bottom: 1px solid var(--rule);\n    }\n    .code-tabs { display: flex; gap: 0.25rem; }\n    .code-tab {\n      padding: 0.375rem 0.875rem; border-radius: var(--radius-sm);\n      border: none; background: transparent; color: var(--muted);\n      cursor: pointer; font-size: 0.875rem; font-weight: 500;\n      transition: all 0.2s ease;\n    }\n    .code-tab:hover { color: var(--ink); }\n    .code-tab.active { background: var(--accent); color: #fff; }\n    .code-body { position: relative; }\n    .code-pane { display: none; overflow-x: auto; }\n    .code-pane.active { display: block; }\n    .code-pane pre {\n      font-family: var(--font-mono); font-size: 0.875rem;\n      line-height: 1.7; color: var(--code-ink); margin: 0;\n      padding: 1rem;\n    }\n    .copy-btn {\n      padding: 0.375rem 0.75rem; border-radius: var(--radius-sm);\n      border: 1px solid var(--rule); background: var(--bg2);\n      color: var(--muted); cursor: pointer; font-size: 0.8rem;\n      transition: all 0.2s ease; display: flex; align-items: center; gap: 0.3rem;\n    }\n    .copy-btn:hover { background: var(--accent-light); color: var(--accent); border-color: var(--accent); }\n\n    \/* Syntax highlighting *\/\n    .keyword { color: #c678dd; }\n    .string { color: #98c379; }\n    .comment { color: #5c6370; font-style: italic; }\n    .function { color: #61afef; }\n    .number { color: #d19a66; }\n    [data-theme=\"dark\"] .keyword { color: #c792ea; }\n    [data-theme=\"dark\"] .string { color: #c3e88d; }\n    [data-theme=\"dark\"] .comment { color: #676e95; }\n    [data-theme=\"dark\"] .function { color: #82aaff; }\n    [data-theme=\"dark\"] .number { color: #f78c6c; }\n\n    \/* === Tables === *\/\n    .table-wrap {\n      overflow-x: auto; overflow-y: auto; max-height: 640px;\n      margin: 1.5rem 0; border-radius: var(--radius);\n      border: 1px solid var(--rule);\n    }\n    table { width: 100%; border-collapse: collapse; font-size: 0.9375rem; }\n    thead { background: var(--accent-light); position: sticky; top: 0; z-index: 1; }\n    th { padding: 0.875rem 1rem; text-align: left; font-weight: 600; color: var(--ink); border-bottom: 2px solid var(--accent); white-space: nowrap; }\n    td { padding: 0.875rem 1rem; border-bottom: 1px solid var(--rule); color: var(--muted); }\n    tr:last-child td { border-bottom: none; }\n    tr:hover td { background: var(--accent-light); }\n    .table-caption {\n      text-align: center; font-size: 0.875rem; color: var(--muted);\n      margin-top: 0.75rem; font-weight: 500;\n    }\n\n    \/* === Diagram \/ Figure === *\/\n    figure { margin: 2rem 0; }\n    figcaption {\n      text-align: center; font-size: 0.875rem; color: var(--muted);\n      margin-top: 0.75rem; font-weight: 500;\n    }\n    .diagram-svg {\n      width: 100%; max-width: 760px; margin: 0 auto; display: block;\n      background: var(--bg2); border-radius: var(--radius);\n      border: 1px solid var(--rule); padding: 1.5rem 1rem;\n    }\n\n    \/* === Language Content Toggle === *\/\n    [data-lang=\"en\"] .zh-only { display: none; }\n    [data-lang=\"zh\"] .en-only { display: none; }\n\n    \/* === Section Headers === *\/\n    .section-header {\n      display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1.5rem;\n    }\n    .section-number {\n      width: 32px; height: 32px; border-radius: 50%;\n      background: linear-gradient(135deg, var(--accent), var(--accent2));\n      color: #fff; display: flex; align-items: center; justify-content: center;\n      font-weight: 700; font-size: 0.875rem; flex-shrink: 0;\n    }\n\n    \/* === Scroll Animations === *\/\n    \/* \u9ed8\u8ba4\u53ef\u89c1\uff1a\u786e\u4fdd JS \u672a\u6267\u884c\u6216\u4e2d\u65ad\u65f6\u5185\u5bb9\u4e0d\u4f1a\u7a7a\u767d\uff1b\u4ec5\u5f53 html \u62e5\u6709 js \u7c7b\u65f6\u624d\u542f\u7528\u9690\u85cf\u52a8\u753b *\/\n    .fade-in {\n      opacity: 1; transform: none;\n      transition: opacity 0.6s ease, transform 0.6s ease;\n    }\n    html.js .fade-in {\n      opacity: 0; transform: translateY(20px);\n    }\n    html.js .fade-in.visible { opacity: 1; transform: translateY(0); }\n\n    \/* === Back to Top === *\/\n    .back-to-top {\n      position: fixed; bottom: 2rem; right: 2rem; z-index: 90;\n      width: 44px; height: 44px; border-radius: 50%;\n      background: var(--bg2); border: 1px solid var(--rule); color: var(--ink);\n      cursor: pointer; display: flex; align-items: center; justify-content: center;\n      opacity: 0; pointer-events: none;\n      transition: all 0.3s ease;\n      box-shadow: 0 4px 14px var(--shadow);\n    }\n    .back-to-top.visible { opacity: 1; pointer-events: auto; }\n    .back-to-top:hover {\n      background: var(--accent); color: #fff; border-color: var(--accent);\n      transform: translateY(-2px); box-shadow: 0 6px 20px var(--shadow-lg);\n    }\n\n    \/* === Callout === *\/\n    .callout {\n      margin: 1.5rem 0; padding: 1.25rem 1.5rem;\n      background: var(--accent2-light); border-left: 4px solid var(--accent2);\n      border-radius: var(--radius-sm);\n    }\n    .callout p { margin-bottom: 0; color: var(--ink); }\n\n    \/* === Footer === *\/\n    footer {\n      border-top: 1px solid var(--rule); padding: 2rem 0; margin-top: 4rem;\n      text-align: center; color: var(--muted); font-size: 0.875rem;\n    }\n\n    \/* === Responsive === *\/\n    @media (max-width: 768px) {\n      .nav-links { display: none; }\n    }\n    @media (max-width: 640px) {\n      .hero { padding: 2.5rem 0 2rem; }\n      .card-grid { grid-template-columns: 1fr; }\n      .nav-inner { padding: 0.75rem 1rem; }\n      .table-wrap { border-radius: var(--radius-sm); }\n      th, td { padding: 0.625rem 0.75rem; font-size: 0.875rem; }\n      .back-to-top { bottom: 1rem; right: 1rem; }\n      .code-pane pre { padding: 1rem; }\n    }\n\n    \/* === Print === *\/\n    @media print {\n      .progress-bar, nav, .hero-actions, .btn-icon, .back-to-top, .nav-links { display: none; }\n      body { background: #fff; color: #000; }\n      .card { break-inside: avoid; box-shadow: none; border: 1px solid #ddd; }\n      .fade-in { opacity: 1; transform: none; }\n    }\n  <\/style>\n\n\n  <!-- Reading Progress Bar -->\n  <div class=\"progress-bar\" id=\"progressBar\"><\/div>\n\n  <!-- Navigation -->\n  <nav id=\"navbar\">\n    <div class=\"nav-inner\">\n      <div class=\"nav-brand\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n          <path d=\"M13 2L3 14h9l-1 8 10-12h-9l1-8z\"\/>\n        <\/svg>\n        <span>ERT<\/span>\n      <\/div>\n      <div class=\"nav-links\">\n        <button class=\"nav-link\" data-target=\"overview\"><span class=\"zh-only\">\u6982\u8ff0<\/span><span class=\"en-only\">Overview<\/span><\/button>\n        <button class=\"nav-link\" data-target=\"principle\"><span class=\"zh-only\">\u539f\u7406<\/span><span class=\"en-only\">Principle<\/span><\/button>\n        <button class=\"nav-link\" data-target=\"arrays\"><span class=\"zh-only\">\u88c5\u7f6e<\/span><span class=\"en-only\">Arrays<\/span><\/button>\n        <button class=\"nav-link\" data-target=\"workflow\"><span class=\"zh-only\">\u6d41\u7a0b<\/span><span class=\"en-only\">Workflow<\/span><\/button>\n        <button class=\"nav-link\" data-target=\"data\"><span class=\"zh-only\">\u6570\u636e\u5904\u7406<\/span><span class=\"en-only\">Processing<\/span><\/button>\n        <button class=\"nav-link\" data-target=\"applications\"><span class=\"zh-only\">\u5e94\u7528<\/span><span class=\"en-only\">Applications<\/span><\/button>\n        <button class=\"nav-link\" data-target=\"materials\"><span class=\"zh-only\">\u7535\u963b\u7387<\/span><span class=\"en-only\">Resistivity<\/span><\/button>\n        <button class=\"nav-link\" data-target=\"summary\"><span class=\"zh-only\">\u603b\u7ed3<\/span><span class=\"en-only\">Summary<\/span><\/button>\n      <\/div>\n      <div class=\"nav-actions\">\n        <button class=\"btn-icon lang-toggle\" id=\"langBtn\" title=\"\u5207\u6362\u8bed\u8a00 \/ Switch Language\">\n          <span class=\"lang-zh\" id=\"langZh\">\u4e2d<\/span><span class=\"lang-sep\">\/<\/span><span class=\"lang-en\" id=\"langEn\">EN<\/span>\n        <\/button>\n        <button class=\"btn-icon\" id=\"themeBtn\" title=\"\u5207\u6362\u4e3b\u9898 \/ Toggle Theme\">\n          <svg id=\"themeIcon\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n            <circle cx=\"12\" cy=\"12\" r=\"5\"\/>\n            <path d=\"M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42\"\/>\n          <\/svg>\n        <\/button>\n      <\/div>\n    <\/div>\n  <\/nav>\n\n  <div class=\"container\">\n    <!-- Hero -->\n    <header class=\"hero fade-in\">\n      <div class=\"hero-badge\">\n        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M13 2L3 14h9l-1 8 10-12h-9l1-8z\"\/><\/svg>\n        <span class=\"zh-only\">\u5730\u7403\u7269\u7406\u52d8\u63a2\u65b9\u6cd5<\/span>\n        <span class=\"en-only\">Geophysical Exploration Method<\/span>\n      <\/div>\n      <h1>\n        <span class=\"zh-only\">ERT \u7535\u963b\u7387\u5c42\u6790\u6210\u50cf<\/span>\n        <span class=\"en-only\">Electrical Resistivity Tomography<\/span>\n      <\/h1>\n      <p class=\"hero-subtitle zh-only\">\u901a\u8fc7\u6d4b\u91cf\u5730\u4e0b\u4ecb\u8d28\u7535\u963b\u7387\u5dee\u5f02\uff0c\u6210\u50cf\u5730\u4e0b\u7ed3\u6784\u4e0e\u754c\u9762\u7684\u5730\u7403\u7269\u7406\u65b9\u6cd5<\/p>\n      <p class=\"hero-subtitle en-only\">A geophysical method that images subsurface structure by measuring resistivity contrasts<\/p>\n      <div class=\"hero-actions\">\n        <a href=\"#principle\" class=\"btn btn-primary zh-only\">\u4e86\u89e3\u539f\u7406<\/a>\n        <a href=\"#principle\" class=\"btn btn-primary en-only\">Learn Principle<\/a>\n        <a href=\"#applications\" class=\"btn btn-secondary zh-only\">\u5e94\u7528\u573a\u666f<\/a>\n        <a href=\"#applications\" class=\"btn btn-secondary en-only\">Use Cases<\/a>\n      <\/div>\n    <\/header>\n\n    <main>\n      <!-- Overview -->\n      <section id=\"overview\" class=\"fade-in\">\n        <div class=\"section-header\">\n          <div class=\"section-number\">1<\/div>\n          <h2 class=\"zh-only\">\u6982\u8ff0<\/h2>\n          <h2 class=\"en-only\">Overview<\/h2>\n        <\/div>\n        <p class=\"zh-only\">\n          <strong>ERT\uff08Electrical Resistivity Tomography\uff0c\u7535\u963b\u7387\u5c42\u6790\u6210\u50cf\uff09<\/strong>\uff0c\u53c8\u79f0<strong>\u9ad8\u5bc6\u5ea6\u7535\u6cd5<\/strong>\uff0c\u662f\u4e00\u79cd\u57fa\u4e8e\u4ecb\u8d28\u7535\u6027\u5dee\u5f02\u7684\u5730\u7403\u7269\u7406\u52d8\u63a2\u65b9\u6cd5\u3002\u5b83\u901a\u8fc7\u5728\u5730\u8868\u5e03\u8bbe\u4e00\u7cfb\u5217\u7535\u6781\uff0c\u5411\u5730\u4e0b\u4f9b\u5165\u4eba\u5de5\u7535\u6d41\uff0c\u5e76\u6d4b\u91cf\u4e0d\u540c\u4f4d\u7f6e\u7684\u7535\u52bf\u5dee\uff0c\u8fdb\u800c\u53cd\u6f14\u51fa\u5730\u4e0b\u4ecb\u8d28\u7684\u7535\u963b\u7387\u5206\u5e03\uff0c\u5f62\u6210\u4e8c\u7ef4\u6216\u4e09\u7ef4\u7684&#8221;\u7535\u6027\u5256\u9762&#8221;\u3002\n        <\/p>\n        <p class=\"en-only\">\n          <strong>ERT (Electrical Resistivity Tomography)<\/strong> is a geophysical exploration method based on the electrical contrast of subsurface media. By laying out a series of electrodes on the surface, injecting artificial current into the ground, and measuring potential differences at various positions, it inverts the resistivity distribution of the subsurface to produce a 2D or 3D &#8220;electrical profile.&#8221;\n        <\/p>\n        <p class=\"zh-only\">\n          \u7531\u4e8e\u5730\u4e0b\u6c34\u3001\u5b54\u9699\u6d41\u4f53\u3001\u5ca9\u6027\u754c\u9762\u4e0e\u6784\u9020\u7834\u788e\u5e26\u7b49\u90fd\u4f1a\u663e\u8457\u6539\u53d8\u4ecb\u8d28\u7684\u7535\u963b\u7387\uff0cERT \u6210\u4e3a\u63a2\u6d4b\u5730\u4e0b\u7ed3\u6784\u6700\u5177\u6027\u4ef7\u6bd4\u7684\u624b\u6bb5\u4e4b\u4e00\u3002\u5b83\u8d77\u6e90\u4e8e 20 \u4e16\u7eaa\u521d\u7684\u5e38\u89c4\u7535\u963b\u7387\u6cd5\uff0c\u968f\u7740 20 \u4e16\u7eaa 80 \u5e74\u4ee3\u540e\u591a\u7535\u6781\u81ea\u52a8\u91c7\u96c6\u4e0e\u4e8c\u7ef4\/\u4e09\u7ef4\u53cd\u6f14\u7b97\u6cd5\u7684\u6210\u719f\uff0c\u9010\u6b65\u53d1\u5c55\u4e3a\u4eca\u5929\u5e7f\u6cdb\u4f7f\u7528\u7684\u5c42\u6790\u6210\u50cf\u6280\u672f\u3002\n        <\/p>\n        <p class=\"en-only\">\n          Because groundwater, pore fluids, lithologic interfaces, and fractured zones all significantly alter medium resistivity, ERT has become one of the most cost-effective means of investigating subsurface structure. It evolved from conventional resistivity surveying of the early 20th century, maturing into today&#8217;s tomographic technique after the development of multi-electrode automated acquisition and 2D\/3D inversion algorithms in the 1980s.\n        <\/p>\n\n        <div class=\"callout\">\n          <p class=\"zh-only\"><strong>\u6838\u5fc3\u601d\u60f3\uff1a<\/strong>\u4e0d\u540c\u5730\u8d28\u4f53\u7535\u963b\u7387\u5dee\u5f02\u53ef\u8fbe\u6570\u4e2a\u6570\u91cf\u7ea7\uff08\u5982\u82b1\u5c97\u5ca9 ~10\u2074 \u03a9\u00b7m\uff0c\u9ecf\u571f ~10 \u03a9\u00b7m\uff09\uff0cERT \u6b63\u662f\u5229\u7528\u8fd9\u4e00\u5bf9\u6bd4\u6765&#8221;\u770b\u89c1&#8221;\u770b\u4e0d\u89c1\u7684\u5730\u4e0b\u754c\u9762\u3002<\/p>\n          <p class=\"en-only\"><strong>Core idea:<\/strong> Resistivity of different geological bodies spans orders of magnitude (e.g., granite ~10\u2074 \u03a9\u00b7m, clay ~10 \u03a9\u00b7m). ERT exploits this contrast to &#8220;see&#8221; invisible subsurface interfaces.<\/p>\n        <\/div>\n      <\/section>\n\n      <!-- Principle -->\n      <section id=\"principle\" class=\"fade-in\">\n        <div class=\"section-header\">\n          <div class=\"section-number\">2<\/div>\n          <h2 class=\"zh-only\">\u57fa\u672c\u539f\u7406<\/h2>\n          <h2 class=\"en-only\">Basic Principle<\/h2>\n        <\/div>\n        <p class=\"zh-only\">\n          ERT \u7684\u7269\u7406\u57fa\u7840\u662f<strong>\u6b27\u59c6\u5b9a\u5f8b<\/strong>\u4e0e<strong>\u5927\u5730\u7535\u963b\u7387\u6d4b\u91cf<\/strong>\u3002\u5728\u5730\u4e0b\u4e24\u70b9 A\u3001B \u4f9b\u5165\u7535\u6d41 <code>I<\/code>\uff0c\u7535\u6d41\u5728\u5730\u4e0b\u5efa\u7acb\u7a33\u5b9a\u7535\u573a\uff1b\u518d\u7528\u53e6\u5916\u4e24\u70b9 M\u3001N \u6d4b\u91cf\u7535\u52bf\u5dee <code>\u0394V<\/code>\u3002\u5bf9\u4e8e\u5747\u5300\u534a\u7a7a\u95f4\uff0c\u53ef\u7531\u4e0b\u5f0f\u8ba1\u7b97\u89c6\u7535\u963b\u7387 <code>\u03c1<sub>a<\/sub><\/code>\uff1a\n        <\/p>\n        <p class=\"en-only\">\n          The physical basis of ERT is <strong>Ohm&#8217;s law<\/strong> and <strong>earth resistivity measurement<\/strong>. Current <code>I<\/code> is injected via two electrodes A and B, establishing a steady electric field in the ground; the potential difference <code>\u0394V<\/code> is measured at two other electrodes M and N. For a homogeneous half-space, the apparent resistivity <code>\u03c1<sub>a<\/sub><\/code> is:\n        <\/p>\n        <div style=\"text-align:center; margin:1.5rem 0; font-size:1.25rem; font-family:var(--font-mono); color:var(--ink);\">\n          \u03c1<sub>a<\/sub> = K \u00b7 (\u0394V \/ I)\n        <\/div>\n        <p class=\"zh-only\">\n          \u5176\u4e2d <code>K<\/code> \u4e3a<strong>\u88c5\u7f6e\u7cfb\u6570<\/strong>\uff08geometric factor\uff09\uff0c\u7531\u56db\u4e2a\u7535\u6781\u7684\u76f8\u5bf9\u51e0\u4f55\u5173\u7cfb\u51b3\u5b9a\u3002\u5b9e\u9645\u5730\u4e0b\u5e76\u975e\u5747\u5300\uff0c\u6545\u6d4b\u5f97\u7684\u662f\u7efc\u5408\u53cd\u6620\u63a2\u6d4b\u8303\u56f4\u5185\u4ecb\u8d28\u7535\u6027\u7684&#8221;\u89c6\u7535\u963b\u7387&#8221;\u3002\u901a\u8fc7\u6cbf\u6d4b\u7ebf\u6eda\u52a8\u3001\u53d8\u6362\u7535\u6781\u7ec4\u5408\uff0c\u53ef\u83b7\u5f97\u5927\u91cf\u89c6\u7535\u963b\u7387\u89c2\u6d4b\uff0c\u518d\u7ecf\u53cd\u6f14\u5f97\u5230\u5730\u4e0b\u771f\u5b9e\u7535\u963b\u7387\u5206\u5e03\u3002\n        <\/p>\n        <p class=\"en-only\">\n          where <code>K<\/code> is the <strong>geometric factor<\/strong> determined by the relative geometry of the four electrodes. The real subsurface is not homogeneous, so the measured quantity is an &#8220;apparent resistivity&#8221; integrating the electrical properties within the investigation volume. By rolling along a profile and varying electrode combinations, a large set of apparent-resistivity observations is gathered and then inverted to obtain the true resistivity distribution.\n        <\/p>\n\n        <figure>\n          <svg class=\"diagram-svg\" viewBox=\"0 0 760 280\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" role=\"img\" aria-label=\"ERT four-electrode measurement principle\">\n            <defs>\n              <linearGradient id=\"ground\" x1=\"0\" x2=\"0\" y1=\"0\" y2=\"1\">\n                <stop offset=\"0\" stop-color=\"#c8b07a\" stop-opacity=\"0.35\"\/>\n                <stop offset=\"1\" stop-color=\"#a98c54\" stop-opacity=\"0.45\"\/>\n              <\/linearGradient>\n              <marker id=\"arrow\" viewBox=\"0 0 10 10\" refX=\"8\" refY=\"5\" markerWidth=\"6\" markerHeight=\"6\" orient=\"auto-start-reverse\">\n                <path d=\"M0,0 L10,5 L0,10 z\" fill=\"#ef4444\"\/>\n              <\/marker>\n            <\/defs>\n            <!-- sky -->\n            <rect x=\"0\" y=\"0\" width=\"760\" height=\"70\" fill=\"rgba(56,189,248,0.05)\"\/>\n            <!-- ground -->\n            <rect x=\"0\" y=\"70\" width=\"760\" height=\"210\" fill=\"url(#ground)\"\/>\n            <line x1=\"0\" y1=\"70\" x2=\"760\" y2=\"70\" stroke=\"var(--muted)\" stroke-width=\"1.5\"\/>\n            <text x=\"12\" y=\"60\" font-size=\"13\" fill=\"var(--muted)\" class=\"zh-only\">\u5730\u8868 surface<\/text>\n            <text x=\"12\" y=\"60\" font-size=\"13\" fill=\"var(--muted)\" class=\"en-only\">Surface<\/text>\n\n            <!-- current source -->\n            <circle cx=\"180\" cy=\"40\" r=\"16\" fill=\"var(--accent2)\"\/>\n            <text x=\"180\" y=\"45\" text-anchor=\"middle\" fill=\"#fff\" font-size=\"14\" font-weight=\"700\">I<\/text>\n            <line x1=\"180\" y1=\"56\" x2=\"180\" y2=\"70\" stroke=\"var(--accent2)\" stroke-width=\"2\"\/>\n\n            <!-- electrodes A B M N -->\n            <g stroke=\"var(--ink)\" stroke-width=\"3\">\n              <line x1=\"180\" y1=\"70\" x2=\"180\" y2=\"96\"\/>\n              <line x1=\"560\" y1=\"70\" x2=\"560\" y2=\"96\"\/>\n              <line x1=\"300\" y1=\"70\" x2=\"300\" y2=\"96\"\/>\n              <line x1=\"440\" y1=\"70\" x2=\"440\" y2=\"96\"\/>\n            <\/g>\n            <circle cx=\"180\" cy=\"100\" r=\"6\" fill=\"var(--danger)\"\/>\n            <circle cx=\"560\" cy=\"100\" r=\"6\" fill=\"var(--danger)\"\/>\n            <circle cx=\"300\" cy=\"100\" r=\"6\" fill=\"var(--accent)\"\/>\n            <circle cx=\"440\" cy=\"100\" r=\"6\" fill=\"var(--accent)\"\/>\n            <text x=\"180\" y=\"120\" text-anchor=\"middle\" font-size=\"14\" fill=\"var(--ink)\" font-weight=\"700\">A<\/text>\n            <text x=\"560\" y=\"120\" text-anchor=\"middle\" font-size=\"14\" fill=\"var(--ink)\" font-weight=\"700\">B<\/text>\n            <text x=\"300\" y=\"120\" text-anchor=\"middle\" font-size=\"14\" fill=\"var(--ink)\" font-weight=\"700\">M<\/text>\n            <text x=\"440\" y=\"120\" text-anchor=\"middle\" font-size=\"14\" fill=\"var(--ink)\" font-weight=\"700\">N<\/text>\n\n            <!-- current flow lines -->\n            <path d=\"M180,100 C220,170 540,170 560,100\" fill=\"none\" stroke=\"#ef4444\" stroke-width=\"2\" stroke-dasharray=\"5 4\" marker-end=\"url(#arrow)\"\/>\n            <path d=\"M180,100 C260,220 490,220 560,100\" fill=\"none\" stroke=\"#ef4444\" stroke-width=\"2\" stroke-dasharray=\"5 4\" opacity=\"0.6\" marker-end=\"url(#arrow)\"\/>\n            <text x=\"370\" y=\"200\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--danger)\" class=\"zh-only\">\u7535\u6d41\u8def\u5f84 current flow<\/text>\n            <text x=\"370\" y=\"200\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--danger)\" class=\"en-only\">Current flow<\/text>\n\n            <!-- potential measurement -->\n            <line x1=\"300\" y1=\"100\" x2=\"440\" y2=\"100\" stroke=\"var(--accent)\" stroke-width=\"2\"\/>\n            <text x=\"370\" y=\"92\" text-anchor=\"middle\" font-size=\"13\" fill=\"var(--accent)\" font-weight=\"700\">\u0394V<\/text>\n\n            <!-- voltmeter -->\n            <rect x=\"350\" y=\"28\" width=\"40\" height=\"22\" rx=\"4\" fill=\"var(--bg2)\" stroke=\"var(--accent)\" stroke-width=\"1.5\"\/>\n            <text x=\"370\" y=\"44\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--accent)\" font-weight=\"700\">V<\/text>\n            <line x1=\"350\" y1=\"50\" x2=\"300\" y2=\"100\" stroke=\"var(--accent)\" stroke-width=\"1.2\"\/>\n            <line x1=\"390\" y1=\"50\" x2=\"440\" y2=\"100\" stroke=\"var(--accent)\" stroke-width=\"1.2\"\/>\n\n            <text x=\"650\" y=\"260\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--muted)\" class=\"zh-only\">\u5730\u4e0b\u4ecb\u8d28 subsurface<\/text>\n            <text x=\"650\" y=\"260\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--muted)\" class=\"en-only\">Subsurface<\/text>\n          <\/svg>\n          <figcaption class=\"zh-only\">\u56fe 1&nbsp;&nbsp;\u56db\u6781\u6cd5\u6d4b\u91cf\u539f\u7406\uff1aA\u3001B \u4f9b\u7535\uff0cM\u3001N \u6d4b\u91cf\u7535\u4f4d\u5dee<\/figcaption>\n          <figcaption class=\"en-only\">Figure 1&nbsp;&nbsp;Four-electrode measurement: A and B inject current, M and N measure potential difference<\/figcaption>\n        <\/figure>\n      <\/section>\n\n      <!-- Arrays -->\n      <section id=\"arrays\" class=\"fade-in\">\n        <div class=\"section-header\">\n          <div class=\"section-number\">3<\/div>\n          <h2 class=\"zh-only\">\u7535\u6781\u88c5\u7f6e\u7c7b\u578b<\/h2>\n          <h2 class=\"en-only\">Electrode Arrays<\/h2>\n        <\/div>\n        <p class=\"zh-only\">\n          \u56db\u4e2a\u7535\u6781\uff08A\u3001B \u4f9b\u7535\u6781\uff0cM\u3001N \u6d4b\u91cf\u6781\uff09\u7684\u76f8\u5bf9\u6392\u5217\u65b9\u5f0f\u79f0\u4e3a<strong>\u88c5\u7f6e\u7c7b\u578b<\/strong>\u3002\u4e0d\u540c\u88c5\u7f6e\u5728\u6c34\u5e73\u5206\u8fa8\u7387\u3001\u5782\u5411\u63a2\u6d4b\u6df1\u5ea6\u4e0e\u6297\u566a\u80fd\u529b\u4e0a\u5404\u6709\u4fa7\u91cd\uff0c\u5b9e\u9645\u5de5\u4f5c\u4e2d\u5e38\u7ec4\u5408\u4f7f\u7528\u3002\n        <\/p>\n        <p class=\"en-only\">\n          The relative arrangement of four electrodes (A and B for current, M and N for potential) is called an <strong>array type<\/strong>. Different arrays emphasize horizontal resolution, vertical depth, or noise resistance, and are often combined in practice.\n        <\/p>\n\n        <div class=\"table-wrap\">\n          <table>\n            <thead>\n              <tr>\n                <th class=\"zh-only\">\u88c5\u7f6e\u7c7b\u578b<\/th>\n                <th class=\"en-only\">Array Type<\/th>\n                <th class=\"zh-only\">\u7535\u6781\u6392\u5217<\/th>\n                <th class=\"en-only\">Layout<\/th>\n                <th class=\"zh-only\">\u7279\u70b9<\/th>\n                <th class=\"en-only\">Characteristics<\/th>\n              <\/tr>\n            <\/thead>\n            <tbody>\n              <tr>\n                <td>Wenner<\/td>\n                <td>Wenner<\/td>\n                <td class=\"zh-only\">A-M-N-B \u7b49\u95f4\u8ddd<\/td>\n                <td class=\"en-only\">A-M-N-B equally spaced<\/td>\n                <td class=\"zh-only\">\u4fe1\u566a\u6bd4\u9ad8\u3001\u5782\u5411\u5206\u8fa8\u7387\u597d\uff0c\u6c34\u5e73\u5206\u8fa8\u7387\u4e00\u822c<\/td>\n                <td class=\"en-only\">High S\/N, good vertical resolution, moderate horizontal<\/td>\n              <\/tr>\n              <tr>\n                <td>Schlumberger<\/td>\n                <td>Schlumberger<\/td>\n                <td class=\"zh-only\">M\u3001N \u5c45\u4e2d\uff0cA\u3001B \u5bf9\u79f0\u5916\u6269<\/td>\n                <td class=\"en-only\">M-N centered, A-B symmetric outer<\/td>\n                <td class=\"zh-only\">\u63a2\u6d4b\u6df1\u5ea6\u7075\u6d3b\uff0c\u5e38\u7528\u4e8e\u6d4b\u6df1<\/td>\n                <td class=\"en-only\">Flexible depth, common for sounding<\/td>\n              <\/tr>\n              <tr>\n                <td>Dipole-Dipole<\/td>\n                <td>Dipole-Dipole<\/td>\n                <td class=\"zh-only\">A-B \u4e0e M-N \u5206\u79bb\uff0c\u4e24\u7ec4\u5076\u6781<\/td>\n                <td class=\"en-only\">A-B and M-N separated dipoles<\/td>\n                <td class=\"zh-only\">\u6c34\u5e73\u5206\u8fa8\u7387\u9ad8\u3001\u63a2\u6d4b\u6df1\u5ea6\u5927\uff0c\u4fe1\u53f7\u5f31<\/td>\n                <td class=\"en-only\">High horizontal resolution, greater depth, weak signal<\/td>\n              <\/tr>\n              <tr>\n                <td>Pole-Dipole<\/td>\n                <td>Pole-Dipole<\/td>\n                <td class=\"zh-only\">\u4e00\u4e2a\u4f9b\u7535\u6781\u7f6e\u4e8e\u65e0\u7a77\u8fdc<\/td>\n                <td class=\"en-only\">One current electrode at infinity<\/td>\n                <td class=\"zh-only\">\u4e0d\u5bf9\u79f0\uff0c\u5bf9\u6d45\u5c42\u7ed3\u6784\u654f\u611f<\/td>\n                <td class=\"en-only\">Asymmetric, sensitive to shallow structure<\/td>\n              <\/tr>\n              <tr>\n                <td>Wenner-Schlumberger<\/td>\n                <td>Wenner-Schlumberger<\/td>\n                <td class=\"zh-only\">\u6df7\u5408\u6392\u5217<\/td>\n                <td class=\"en-only\">Hybrid layout<\/td>\n                <td class=\"zh-only\">\u517c\u987e\u5206\u8fa8\u7387\u4e0e\u4fe1\u566a\u6bd4<\/td>\n                <td class=\"en-only\">Balances resolution and S\/N<\/td>\n              <\/tr>\n            <\/tbody>\n          <\/table>\n        <\/div>\n        <p class=\"table-caption zh-only\">\u88681&nbsp;&nbsp;\u5e38\u89c1 ERT \u7535\u6781\u88c5\u7f6e\u7c7b\u578b\u5bf9\u6bd4<\/p>\n        <p class=\"table-caption en-only\">Table 1&nbsp;&nbsp;Common ERT electrode arrays compared<\/p>\n\n        <p class=\"zh-only\">\u5b9e\u9645&#8221;\u9ad8\u5bc6\u5ea6\u7535\u6cd5&#8221;\u7cfb\u7edf\u901a\u5e38\u6cbf\u6d4b\u7ebf\u5e03\u8bbe 32~128 \u6839\u7535\u6781\uff0c\u7531\u91c7\u96c6\u4e3b\u673a\u81ea\u52a8\u5207\u6362 A\u3001B\u3001M\u3001N \u89d2\u8272\uff0c\u4e00\u6b21\u5e03\u6781\u5373\u53ef\u83b7\u5f97\u6570\u767e\u81f3\u6570\u5343\u4e2a\u89c2\u6d4b\u70b9\uff0c\u5927\u5e45\u63d0\u9ad8\u6548\u7387\u3002<\/p>\n        <p class=\"en-only\">In practice, a &#8220;high-density&#8221; system lays 32\u2013128 electrodes along a profile; an acquisition unit automatically switches the A\/B\/M\/N roles, yielding hundreds to thousands of observations from a single layout.<\/p>\n      <\/section>\n\n      <!-- Workflow -->\n      <section id=\"workflow\" class=\"fade-in\">\n        <div class=\"section-header\">\n          <div class=\"section-number\">4<\/div>\n          <h2 class=\"zh-only\">\u91ce\u5916\u5de5\u4f5c\u6d41\u7a0b<\/h2>\n          <h2 class=\"en-only\">Field Workflow<\/h2>\n        <\/div>\n        <p class=\"zh-only\">\u4e00\u6761\u5178\u578b ERT \u6d4b\u7ebf\u7684\u4f5c\u4e1a\u6d41\u7a0b\u5982\u4e0b\uff1a<\/p>\n        <p class=\"en-only\">A typical ERT profile workflow:<\/p>\n\n        <figure>\n          <svg class=\"diagram-svg\" viewBox=\"0 0 760 200\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" role=\"img\" aria-label=\"ERT workflow\">\n            <defs>\n              <marker id=\"arrow2\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto\">\n                <path d=\"M0,0 L10,5 L0,10 z\" fill=\"var(--accent)\"\/>\n              <\/marker>\n            <\/defs>\n            <g font-family=\"var(--font)\" font-size=\"12\" fill=\"var(--ink)\">\n              <rect x=\"10\" y=\"70\" width=\"120\" height=\"60\" rx=\"10\" fill=\"var(--accent-light)\" stroke=\"var(--accent)\" stroke-width=\"1.5\"\/>\n              <text x=\"70\" y=\"95\" text-anchor=\"middle\">1. \u6d4b\u7ebf\u5e03\u8bbe<\/text>\n              <text x=\"70\" y=\"112\" text-anchor=\"middle\" class=\"en-only\" font-size=\"10\">Layout<\/text>\n\n              <rect x=\"160\" y=\"70\" width=\"120\" height=\"60\" rx=\"10\" fill=\"var(--accent-light)\" stroke=\"var(--accent)\" stroke-width=\"1.5\"\/>\n              <text x=\"220\" y=\"95\" text-anchor=\"middle\">2. \u6253\u7535\u6781\u63a5\u5730<\/text>\n              <text x=\"220\" y=\"112\" text-anchor=\"middle\" class=\"en-only\" font-size=\"10\">Electrodes<\/text>\n\n              <rect x=\"310\" y=\"70\" width=\"120\" height=\"60\" rx=\"10\" fill=\"var(--accent-light)\" stroke=\"var(--accent)\" stroke-width=\"1.5\"\/>\n              <text x=\"370\" y=\"95\" text-anchor=\"middle\">3. \u81ea\u52a8\u91c7\u96c6<\/text>\n              <text x=\"370\" y=\"112\" text-anchor=\"middle\" class=\"en-only\" font-size=\"10\">Acquisition<\/text>\n\n              <rect x=\"460\" y=\"70\" width=\"120\" height=\"60\" rx=\"10\" fill=\"var(--accent2-light)\" stroke=\"var(--accent2)\" stroke-width=\"1.5\"\/>\n              <text x=\"520\" y=\"95\" text-anchor=\"middle\">4. \u6570\u636e\u9884\u5904\u7406<\/text>\n              <text x=\"520\" y=\"112\" text-anchor=\"middle\" class=\"en-only\" font-size=\"10\">Preprocessing<\/text>\n\n              <rect x=\"610\" y=\"70\" width=\"140\" height=\"60\" rx=\"10\" fill=\"var(--accent2-light)\" stroke=\"var(--accent2)\" stroke-width=\"1.5\"\/>\n              <text x=\"680\" y=\"95\" text-anchor=\"middle\">5. \u53cd\u6f14\u6210\u50cf<\/text>\n              <text x=\"680\" y=\"112\" text-anchor=\"middle\" class=\"en-only\" font-size=\"10\">Inversion<\/text>\n\n              <line x1=\"132\" y1=\"100\" x2=\"156\" y2=\"100\" stroke=\"var(--accent)\" stroke-width=\"2\" marker-end=\"url(#arrow2)\"\/>\n              <line x1=\"282\" y1=\"100\" x2=\"306\" y2=\"100\" stroke=\"var(--accent)\" stroke-width=\"2\" marker-end=\"url(#arrow2)\"\/>\n              <line x1=\"432\" y1=\"100\" x2=\"456\" y2=\"100\" stroke=\"var(--accent)\" stroke-width=\"2\" marker-end=\"url(#arrow2)\"\/>\n              <line x1=\"582\" y1=\"100\" x2=\"606\" y2=\"100\" stroke=\"var(--accent)\" stroke-width=\"2\" marker-end=\"url(#arrow2)\"\/>\n\n              <text x=\"70\" y=\"155\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--muted)\" class=\"zh-only\">\u8bbe\u8ba1\u6d4b\u7f51\u3001\u786e\u5b9a\u6781\u8ddd<\/text>\n              <text x=\"70\" y=\"155\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--muted)\" class=\"en-only\">Design grid, spacing<\/text>\n              <text x=\"220\" y=\"155\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--muted)\" class=\"zh-only\">\u94a2\u948e\u5165\u571f\u3001\u6d47\u6c34\u964d\u963b<\/text>\n              <text x=\"220\" y=\"155\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--muted)\" class=\"en-only\">Stake, reduce contact R<\/text>\n              <text x=\"370\" y=\"155\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--muted)\" class=\"zh-only\">\u4e3b\u673a\u5207\u6362\u3001\u8bb0\u5f55\u03c1a<\/text>\n              <text x=\"370\" y=\"155\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--muted)\" class=\"en-only\">Switch, record \u03c1a<\/text>\n              <text x=\"520\" y=\"155\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--muted)\" class=\"zh-only\">\u5254\u574f\u70b9\u3001\u5730\u5f62\u6821\u6b63<\/text>\n              <text x=\"520\" y=\"155\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--muted)\" class=\"en-only\">Edit, topographic corr.<\/text>\n              <text x=\"680\" y=\"155\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--muted)\" class=\"zh-only\">\u8f93\u51fa\u7535\u963b\u7387\u5256\u9762<\/text>\n              <text x=\"680\" y=\"155\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--muted)\" class=\"en-only\">Resistivity section<\/text>\n            <\/g>\n          <\/svg>\n          <figcaption class=\"zh-only\">\u56fe 2&nbsp;&nbsp;ERT \u91ce\u5916\u5de5\u4f5c\u6d41\u7a0b\u793a\u610f\u56fe<\/figcaption>\n          <figcaption class=\"en-only\">Figure 2&nbsp;&nbsp;ERT field workflow<\/figcaption>\n        <\/figure>\n\n        <p class=\"zh-only\">\u5176\u4e2d\u7535\u6781\u63a5\u5730\u8d28\u91cf\u76f4\u63a5\u5f71\u54cd\u6570\u636e\u4fe1\u566a\u6bd4\uff1b\u5728\u5e72\u71e5\u6216\u5ca9\u77f3\u51fa\u9732\u533a\uff0c\u5e38\u9700\u6d47\u6c34\u6216\u4f7f\u7528\u76d0\u6c34\u964d\u4f4e\u63a5\u5730\u7535\u963b\u3002\u5730\u5f62\u8d77\u4f0f\u663e\u8457\u7684\u6d4b\u7ebf\u8fd8\u9700\u8fdb\u884c<strong>\u5730\u5f62\u6821\u6b63<\/strong>\uff0c\u5426\u5219\u53cd\u6f14\u7ed3\u679c\u4f1a\u4ea7\u751f\u5047\u5f02\u5e38\u3002<\/p>\n        <p class=\"en-only\">Electrode contact quality directly affects data S\/N; in dry or rocky areas, water or brine is used to reduce contact resistance. Profiles with significant topographic relief require <strong>topographic correction<\/strong>, otherwise inversion produces false anomalies.<\/p>\n      <\/section>\n\n      <!-- Data Processing -->\n      <section id=\"data\" class=\"fade-in\">\n        <div class=\"section-header\">\n          <div class=\"section-number\">5<\/div>\n          <h2 class=\"zh-only\">\u6570\u636e\u5904\u7406\u4e0e\u53cd\u6f14<\/h2>\n          <h2 class=\"en-only\">Data Processing &#038; Inversion<\/h2>\n        <\/div>\n        <p class=\"zh-only\">\n          ERT \u53cd\u6f14\u662f\u4e00\u4e2a<strong>\u975e\u7ebf\u6027\u6700\u4f18\u5316<\/strong>\u95ee\u9898\uff1a\u7ed9\u5b9a\u89c2\u6d4b\u7684\u89c6\u7535\u963b\u7387\u6570\u636e\uff0c\u6c42\u89e3\u4f7f\u6b63\u6f14\u54cd\u5e94\u4e0e\u89c2\u6d4b\u6700\u4f73\u62df\u5408\u7684\u5730\u4e0b\u7535\u963b\u7387\u6a21\u578b\u3002\u4e3b\u6d41\u91c7\u7528<strong>\u6700\u5c0f\u4e8c\u4e58\u5149\u6ed1\u7ea6\u675f<\/strong>\uff08\u5982 Loke &#038; Barker \u7684 Gauss-Newton \u6cd5\uff09\uff0c\u5728\u6570\u636e\u62df\u5408\u4e0e\u6a21\u578b\u5e73\u6ed1\u4e4b\u95f4\u6743\u8861\uff0c\u907f\u514d\u8fc7\u62df\u5408\u3002\n        <\/p>\n        <p class=\"en-only\">\n          ERT inversion is a <strong>nonlinear optimization<\/strong> problem: given observed apparent resistivity, solve for a subsurface resistivity model whose forward response best fits the data. The mainstream approach uses <strong>least-squares smooth-constraint<\/strong> (e.g., Loke &#038; Barker&#8217;s Gauss-Newton method), trading off data fit against model smoothness to avoid overfitting.\n        <\/p>\n        <p class=\"zh-only\">\u5178\u578b\u5904\u7406\u6b65\u9aa4\u5305\u62ec\uff1a\u574f\u70b9\u5254\u9664 \u2192 \u5730\u5f62\u6821\u6b63 \u2192 \u6b63\u6f14\u5efa\u6a21 \u2192 \u8fed\u4ee3\u53cd\u6f14 \u2192 \u6a21\u578b\u8bc4\u4f30\uff08\u5747\u65b9\u6839\u8bef\u5dee RMS\uff09\u2192 \u5730\u8d28\u89e3\u91ca\u3002\u6700\u7ec8\u8f93\u51fa\u7684\u7535\u963b\u7387\u5256\u9762\u9700\u7ed3\u5408\u94bb\u5b54\u6216\u5730\u8d28\u8d44\u6599\u624d\u80fd\u8f6c\u5316\u4e3a\u53ef\u4fe1\u7684\u5730\u8d28\u7ed3\u8bba\u3002<\/p>\n        <p class=\"en-only\">Typical steps: bad-point removal \u2192 topographic correction \u2192 forward modeling \u2192 iterative inversion \u2192 model evaluation (RMS error) \u2192 geological interpretation. The final resistivity section must be combined with borehole or geological data to yield reliable conclusions.<\/p>\n\n        <p class=\"zh-only\">\u4f7f\u7528 Python \u751f\u6001 <code>pyGIMLi<\/code> \u8fdb\u884c ERT \u53cd\u6f14\u7684\u793a\u4f8b\uff1a<\/p>\n        <p class=\"en-only\">Example of ERT inversion using the Python ecosystem <code>pyGIMLi<\/code>:<\/p>\n\n        <div class=\"code-block\">\n          <div class=\"code-header\">\n            <div class=\"code-tabs\">\n              <button class=\"code-tab active\" data-tab=\"py\">Python (pyGIMLi)<\/button>\n            <\/div>\n            <button class=\"copy-btn\" onclick=\"copyCode(this)\">\n              <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"\/><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"\/><\/svg>\n              <span class=\"zh-only\">\u590d\u5236<\/span><span class=\"en-only\">Copy<\/span>\n            <\/button>\n          <\/div>\n          <div class=\"code-body\">\n            <div class=\"code-pane active\" id=\"pane-py\">\n              <pre><code><span class=\"keyword\">import<\/span> pygimli <span class=\"keyword\">as<\/span> pg\n<span class=\"keyword\">import<\/span> pygimli.meshtools <span class=\"keyword\">as<\/span> mt\n<span class=\"keyword\">from<\/span> pygimli.physics <span class=\"keyword\">import<\/span> ert\n\n<span class=\"comment\"># 1. \u8bfb\u53d6\u89c2\u6d4b\u6570\u636e\uff08\u542b\u7535\u6781\u5750\u6807\u4e0e\u89c6\u7535\u963b\u7387\uff09<\/span>\ndata = ert.<span class=\"function\">load<\/span>(<span class=\"string\">\"survey.dat\"<\/span>)\n\n<span class=\"comment\"># 2. \u5efa\u7acb\u6b63\u6f14\u7f51\u683c\uff08\u5e26\u5730\u5f62\uff09<\/span>\ngrid = mt.<span class=\"function\">createParaMesh<\/span>(data, quality=33.5)\n\n<span class=\"comment\"># 3. \u521d\u59cb\u5316\u53cd\u6f14\u7ba1\u7406\u5668<\/span>\nmgr = ert.<span class=\"function\">ERTManager<\/span>(data)\nmgr.<span class=\"function\">invert<\/span>(\n    data=<span class=\"string\">\"rhoa\"<\/span>,         <span class=\"comment\"># \u89c6\u7535\u963b\u7387\u5217<\/span>\n    lam=10,               <span class=\"comment\"># \u6b63\u5219\u5316\u53c2\u6570\uff0c\u63a7\u5236\u5e73\u6ed1\u5ea6<\/span>\n    zweight=0.3,          <span class=\"comment\"># \u5782\u5411\u6743\u91cd\uff0c\u5f71\u54cd\u6df1\u90e8\u5206\u8fa8<\/span>\n    maxIter=20,\n    verbose=<span class=\"keyword\">True<\/span>\n)\n\n<span class=\"comment\"># 4. \u8f93\u51fa\u4e0e\u53ef\u89c6\u5316<\/span>\n<span class=\"function\">print<\/span>(<span class=\"string\">f\"RMS = {mgr.inv.chi2():.2f}\"<\/span>)\nmgr.<span class=\"function\">showResult<\/span>(cMin=10, cMax=1000, logScale=<span class=\"keyword\">True<\/span>)<\/code><\/pre>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"callout\">\n          <p class=\"zh-only\"><strong>\u63d0\u793a\uff1a<\/strong>\u53cd\u6f14\u7ed3\u679c\u5177\u6709\u975e\u552f\u4e00\u6027\u2014\u2014\u4e0d\u540c\u6a21\u578b\u53ef\u80fd\u4ea7\u751f\u76f8\u8fd1\u7684\u89c2\u6d4b\u54cd\u5e94\u3002\u7ed3\u5408\u5148\u9a8c\u5730\u8d28\u4fe1\u606f\u3001\u7ea6\u675f\u53cd\u6f14\u4e0e\u591a\u79cd\u88c5\u7f6e\u8054\u5408\u53cd\u6f14\uff0c\u662f\u964d\u4f4e\u975e\u552f\u4e00\u6027\u7684\u5173\u952e\u3002<\/p>\n          <p class=\"en-only\"><strong>Tip:<\/strong> Inversion is non-unique\u2014different models can produce similar responses. Combining prior geological information, constrained inversion, and joint inversion of multiple arrays is key to reducing non-uniqueness.<\/p>\n        <\/div>\n      <\/section>\n\n      <!-- Applications -->\n      <section id=\"applications\" class=\"fade-in\">\n        <div class=\"section-header\">\n          <div class=\"section-number\">6<\/div>\n          <h2 class=\"zh-only\">\u5e94\u7528\u9886\u57df<\/h2>\n          <h2 class=\"en-only\">Applications<\/h2>\n        <\/div>\n        <div class=\"card-grid\">\n          <div class=\"card\">\n            <div class=\"card-icon\">&#128167;<\/div>\n            <h3 class=\"zh-only\">\u5730\u4e0b\u6c34\u52d8\u63a2<\/h3>\n            <h3 class=\"en-only\">Groundwater<\/h3>\n            <p class=\"zh-only\">\u5708\u5b9a\u542b\u6c34\u5c42\u3001\u786e\u5b9a\u94bb\u5b54\u4f4d\u7f6e\uff0c\u533a\u5206\u54b8\u6de1\u6c34\u754c\u9762\u3002<\/p>\n            <p class=\"en-only\">Delineate aquifers, locate drilling targets, map fresh\/saline interfaces.<\/p>\n          <\/div>\n          <div class=\"card\">\n            <div class=\"card-icon\">&#9763;<\/div>\n            <h3 class=\"zh-only\">\u73af\u5883\u6c61\u67d3\u8c03\u67e5<\/h3>\n            <h3 class=\"en-only\">Contamination<\/h3>\n            <p class=\"zh-only\">\u76d1\u6d4b\u6e17\u6f0f\u7fbd\u3001\u5783\u573e\u586b\u57cb\u573a\u8303\u56f4\u4e0e\u6dcb\u6ee4\u6db2\u8fc1\u79fb\u3002<\/p>\n            <p class=\"en-only\">Monitor leak plumes, landfill extent, and leachate migration.<\/p>\n          <\/div>\n          <div class=\"card\">\n            <div class=\"card-icon\">&#9962;<\/div>\n            <h3 class=\"zh-only\">\u5de5\u7a0b\u5730\u8d28<\/h3>\n            <h3 class=\"en-only\">Engineering<\/h3>\n            <p class=\"zh-only\">\u96a7\u9053\u3001\u575d\u57fa\u3001\u6ed1\u5761\u4f53\u7684\u7ed3\u6784\u63a2\u6d4b\u4e0e\u98ce\u5316\u5e26\u5212\u5206\u3002<\/p>\n            <p class=\"en-only\">Tunnel, dam, landslide structure and weathered-zone mapping.<\/p>\n          <\/div>\n          <div class=\"card\">\n            <div class=\"card-icon\">&#128331;<\/div>\n            <h3 class=\"zh-only\">\u8003\u53e4\u52d8\u63a2<\/h3>\n            <h3 class=\"en-only\">Archaeology<\/h3>\n            <p class=\"zh-only\">\u65e0\u635f\u63a2\u6d4b\u5893\u846c\u3001\u5899\u4f53\u4e0e\u9057\u8ff9\u5206\u5e03\u3002<\/p>\n            <p class=\"en-only\">Non-destructive mapping of tombs, walls, and relic distribution.<\/p>\n          <\/div>\n          <div class=\"card\">\n            <div class=\"card-icon\">&#9881;<\/div>\n            <h3 class=\"zh-only\">\u77ff\u4ea7\u4e0e\u5730\u70ed<\/h3>\n            <h3 class=\"en-only\">Mining &#038; Geothermal<\/h3>\n            <p class=\"zh-only\">\u786b\u5316\u77ff\u4f53\u3001\u88c2\u9699\u5e26\u4e0e\u5730\u70ed\u50a8\u5c42\u5b9a\u4f4d\u3002<\/p>\n            <p class=\"en-only\">Locate sulfide ore bodies, fracture zones, geothermal reservoirs.<\/p>\n          <\/div>\n          <div class=\"card\">\n            <div class=\"card-icon\">&#128064;<\/div>\n            <h3 class=\"zh-only\">\u65f6\u5ef6\u76d1\u6d4b<\/h3>\n            <h3 class=\"en-only\">Time-Lapse<\/h3>\n            <p class=\"zh-only\">\u91cd\u590d\u89c2\u6d4b\u540c\u4e00\u6d4b\u7ebf\uff0c\u8ffd\u8e2a\u6d41\u4f53\u8fd0\u79fb\u4e0e\u52a8\u6001\u53d8\u5316\u3002<\/p>\n            <p class=\"en-only\">Repeat surveys to track fluid movement and dynamic changes.<\/p>\n          <\/div>\n        <\/div>\n      <\/section>\n\n      <!-- Resistivity of Materials -->\n      <section id=\"materials\" class=\"fade-in\">\n        <div class=\"section-header\">\n          <div class=\"section-number\">7<\/div>\n          <h2 class=\"zh-only\">\u5e38\u89c1\u4ecb\u8d28\u7535\u963b\u7387<\/h2>\n          <h2 class=\"en-only\">Resistivity of Materials<\/h2>\n        <\/div>\n        <p class=\"zh-only\">\u7406\u89e3\u7535\u963b\u7387\u91cf\u7ea7\u5dee\u5f02\u662f\u89e3\u91ca ERT \u5256\u9762\u7684\u57fa\u7840\u3002\u4e0b\u8868\u5217\u51fa\u5e38\u89c1\u5730\u8d28\u4ecb\u8d28\u7684\u5178\u578b\u7535\u963b\u7387\u8303\u56f4\uff1a<\/p>\n        <p class=\"en-only\">Understanding resistivity magnitude is fundamental to interpreting ERT sections. Typical resistivity ranges of common media:<\/p>\n\n        <div class=\"table-wrap\">\n          <table>\n            <thead>\n              <tr>\n                <th class=\"zh-only\">\u4ecb\u8d28<\/th>\n                <th class=\"en-only\">Material<\/th>\n                <th>\u7535\u963b\u7387 (\u03a9\u00b7m)<\/th>\n                <th class=\"zh-only\">\u8bf4\u660e<\/th>\n                <th class=\"en-only\">Notes<\/th>\n              <\/tr>\n            <\/thead>\n            <tbody>\n              <tr><td class=\"zh-only\">\u9ecf\u571f<\/td><td class=\"en-only\">Clay<\/td><td>1 ~ 100<\/td><td class=\"zh-only\">\u4f4e\uff0c\u542b\u7ed3\u5408\u6c34\u4e0e\u5bfc\u7535\u77ff\u7269<\/td><td class=\"en-only\">Low, bound water + conductive minerals<\/td><\/tr>\n              <tr><td class=\"zh-only\">\u7802\uff08\u6e7f\uff09<\/td><td class=\"en-only\">Wet sand<\/td><td>50 ~ 500<\/td><td class=\"zh-only\">\u968f\u5b54\u9699\u6c34\u77ff\u5316\u5ea6\u53d8\u5316<\/td><td class=\"en-only\">Varies with pore-water salinity<\/td><\/tr>\n              <tr><td class=\"zh-only\">\u5730\u4e0b\u6c34<\/td><td class=\"en-only\">Groundwater<\/td><td>1 ~ 100<\/td><td class=\"zh-only\">\u6de1\u6c34\u504f\u9ad8\uff0c\u54b8\u6c34\u504f\u4f4e<\/td><td class=\"en-only\">Fresh high, saline low<\/td><\/tr>\n              <tr><td class=\"zh-only\">\u7802\u5ca9<\/td><td class=\"en-only\">Sandstone<\/td><td>10\u00b2 ~ 10\u2074<\/td><td class=\"zh-only\">\u80f6\u7ed3\u7a0b\u5ea6\u5f71\u54cd\u663e\u8457<\/td><td class=\"en-only\">Cementation dependent<\/td><\/tr>\n              <tr><td class=\"zh-only\">\u7070\u5ca9<\/td><td class=\"en-only\">Limestone<\/td><td>10\u00b2 ~ 10\u2075<\/td><td class=\"zh-only\">\u81f4\u5bc6\u9ad8\u963b\uff0c\u5ca9\u6eb6\u964d\u4f4e<\/td><td class=\"en-only\">High, karst lowers it<\/td><\/tr>\n              <tr><td class=\"zh-only\">\u82b1\u5c97\u5ca9<\/td><td class=\"en-only\">Granite<\/td><td>10\u00b3 ~ 10\u2076<\/td><td class=\"zh-only\">\u9ad8\u963b\uff0c\u88c2\u9699\u5e26\u964d\u4f4e<\/td><td class=\"en-only\">High, fractures lower it<\/td><\/tr>\n              <tr><td class=\"zh-only\">\u7384\u6b66\u5ca9<\/td><td class=\"en-only\">Basalt<\/td><td>10\u00b2 ~ 10\u2075<\/td><td class=\"zh-only\">\u53d7\u6c14\u5b54\u4e0e\u542b\u6c34\u5f71\u54cd<\/td><td class=\"en-only\">Vesicles &#038; water dependent<\/td><\/tr>\n              <tr><td class=\"zh-only\">\u77ff\u77f3\uff08\u786b\u5316\u7269\uff09<\/td><td class=\"en-only\">Sulfide ore<\/td><td>10\u207b\u00b3 ~ 10<\/td><td class=\"zh-only\">\u7535\u5b50\u5bfc\u7535\uff0c\u6781\u4f4e<\/td><td class=\"en-only\">Electronic conduction, very low<\/td><\/tr>\n            <\/tbody>\n          <\/table>\n        <\/div>\n        <p class=\"table-caption zh-only\">\u88682&nbsp;&nbsp;\u5e38\u89c1\u5730\u8d28\u4ecb\u8d28\u5178\u578b\u7535\u963b\u7387\u8303\u56f4\uff08\u91cf\u7ea7\u53c2\u8003\uff09<\/p>\n        <p class=\"table-caption en-only\">Table 2&nbsp;&nbsp;Typical resistivity ranges of common geological media<\/p>\n      <\/section>\n\n      <!-- Summary -->\n      <section id=\"summary\" class=\"fade-in\">\n        <div class=\"section-header\">\n          <div class=\"section-number\">8<\/div>\n          <h2 class=\"zh-only\">\u4f18\u52bf\u3001\u5c40\u9650\u4e0e\u603b\u7ed3<\/h2>\n          <h2 class=\"en-only\">Strengths, Limits &#038; Summary<\/h2>\n        <\/div>\n        <p class=\"zh-only\">\n          <strong>\u4f18\u52bf\uff1a<\/strong>ERT \u8bbe\u5907\u76f8\u5bf9\u8f7b\u4fbf\u3001\u6210\u672c\u4f4e\u4e8e\u5730\u9707\u52d8\u63a2\u3001\u53ef\u540c\u65f6\u83b7\u5f97\u8f83\u5927\u63a2\u6d4b\u6df1\u5ea6\u4e0e\u8f83\u9ad8\u5206\u8fa8\u7387\uff0c\u5e76\u80fd\u7528\u4e8e\u65f6\u5ef6\u52a8\u6001\u76d1\u6d4b\uff1b\u5bf9\u4e0d\u540c\u542b\u6c34\u6761\u4ef6\u654f\u611f\uff0c\u7279\u522b\u9002\u5408\u6c34\u6587\u4e0e\u5de5\u7a0b\u95ee\u9898\u3002\n        <\/p>\n        <p class=\"en-only\">\n          <strong>Strengths:<\/strong> ERT equipment is portable and lower-cost than seismic, offers good depth and resolution simultaneously, and supports time-lapse monitoring; it is sensitive to water content, suiting hydrology and engineering problems.\n        <\/p>\n        <p class=\"zh-only\">\n          <strong>\u5c40\u9650\uff1a<\/strong>\u5206\u8fa8\u7387\u968f\u6df1\u5ea6\u8870\u51cf\uff08\u6df1\u90e8\u66f4\u6a21\u7cca\uff09\u3001\u53cd\u6f14\u7ed3\u679c\u975e\u552f\u4e00\u3001\u5728\u5e02\u533a\u91d1\u5c5e\u7ba1\u7ebf\u5bc6\u96c6\u533a\u53d7\u7535\u78c1\u5e72\u6270\u3001\u9ad8\u963b\u7ed3\u6676\u5ca9\u533a\u7535\u6d41\u96be\u4ee5\u6ce8\u5165\u3002\u5bf9\u6781\u4f4e\u963b\u6216\u6781\u9ad8\u963b\u5c4f\u853d\u5c42\u4e0b\u7684\u76ee\u6807\u63a2\u6d4b\u80fd\u529b\u6709\u9650\u3002\n        <\/p>\n        <p class=\"en-only\">\n          <strong>Limits:<\/strong> Resolution decays with depth, inversion is non-unique, urban metallic infrastructure causes interference, and current injection is difficult in resistive crystalline rock. Targets beneath extreme low- or high-resistivity screening layers are hard to resolve.\n        <\/p>\n\n        <div class=\"callout\">\n          <p class=\"zh-only\"><strong>\u603b\u7ed3\uff1a<\/strong>ERT \u7535\u963b\u7387\u5c42\u6790\u6210\u50cf\u4ee5\u4ecb\u8d28\u7535\u6027\u5dee\u5f02\u4e3a\u7269\u7406\u57fa\u7840\uff0c\u901a\u8fc7\u591a\u7535\u6781\u81ea\u52a8\u91c7\u96c6\u4e0e\u4e8c\u7ef4\/\u4e09\u7ef4\u53cd\u6f14\uff0c\u5b9e\u73b0\u4e86\u5bf9\u5730\u4e0b\u7ed3\u6784\u7684\u53ef\u89c6\u5316\u3002\u5b83\u5728\u5730\u4e0b\u6c34\u3001\u73af\u5883\u3001\u5de5\u7a0b\u3001\u8003\u53e4\u3001\u77ff\u4ea7\u7b49\u9886\u57df\u5e94\u7528\u5e7f\u6cdb\uff0c\u662f\u73b0\u4ee3\u5730\u7403\u7269\u7406\u52d8\u63a2\u4e0d\u53ef\u6216\u7f3a\u7684\u65b9\u6cd5\u4e4b\u4e00\u3002\u7ed3\u679c\u7684\u53ef\u9760\u6027\u53d6\u51b3\u4e8e\u91c7\u96c6\u8d28\u91cf\u3001\u53cd\u6f14\u7b56\u7565\u4e0e\u5730\u8d28\u5148\u9a8c\u4fe1\u606f\u7684\u7efc\u5408\u8fd0\u7528\u3002<\/p>\n          <p class=\"en-only\"><strong>Summary:<\/strong> Based on electrical contrast, ERT visualizes subsurface structure via multi-electrode acquisition and 2D\/3D inversion. Widely applied in groundwater, environment, engineering, archaeology, and mining, it is now an indispensable geophysical method. Reliability depends on acquisition quality, inversion strategy, and integration of prior geological information.<\/p>\n        <\/div>\n      <\/section>\n    <\/main>\n\n    <footer>\n      <p class=\"zh-only\">ERT \u7535\u963b\u7387\u5c42\u6790\u6210\u50cf\u4ecb\u7ecd \u00b7 \u57fa\u4e8e\u516c\u5f00\u5730\u7403\u7269\u7406\u6587\u732e\u6574\u7406<\/p>\n      <p class=\"en-only\">ERT Introduction \u00b7 Based on public geophysics literature<\/p>\n      <p style=\"margin-top: 0.5rem;\">\n        <a href=\"https:\/\/www.pygimli.org\" target=\"_blank\">pyGIMLi<\/a> \u00b7\n        <a href=\"https:\/\/en.wikipedia.org\/wiki\/Electrical_resistivity_tomography\" target=\"_blank\">Wikipedia<\/a>\n      <\/p>\n    <\/footer>\n  <\/div>\n\n  <!-- Back to Top -->\n  <button class=\"back-to-top\" id=\"backToTop\" title=\"\u8fd4\u56de\u9876\u90e8 \/ Back to top\">\n    <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n      <line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"5\"\/>\n      <polyline points=\"5 12 12 5 19 12\"\/>\n    <\/svg>\n  <\/button>\n\n  <script>\n    \/\/ \u6807\u8bb0 JS \u5df2\u542f\u7528\uff0c\u7528\u4e8e\u89e6\u53d1\u6eda\u52a8\u52a8\u753b\uff1b\u82e5\u811a\u672c\u4e0d\u53ef\u6267\u884c\uff0c.fade-in \u5185\u5bb9\u9ed8\u8ba4\u53ef\u89c1\uff0c\u4e0d\u4f1a\u7a7a\u767d\n    document.documentElement.classList.add('js');\n\n    \/\/ === Theme Toggle ===\n    const themeBtn = document.getElementById('themeBtn');\n    const themeIcon = document.getElementById('themeIcon');\n    let savedTheme = 'light';\n    try { savedTheme = localStorage.getItem('ert-theme') || 'light'; } catch (e) {}\n    document.body.setAttribute('data-theme', savedTheme);\n    updateThemeIcon(savedTheme);\n\n    themeBtn.addEventListener('click', () => {\n      const current = document.body.getAttribute('data-theme');\n      const next = current === 'dark' ? 'light' : 'dark';\n      document.body.setAttribute('data-theme', next);\n      try { localStorage.setItem('ert-theme', next); } catch (e) {}\n      updateThemeIcon(next);\n    });\n\n    function updateThemeIcon(theme) {\n      if (theme === 'dark') {\n        themeIcon.innerHTML = '<path d=\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\"\/>';\n      } else {\n        themeIcon.innerHTML = '<circle cx=\"12\" cy=\"12\" r=\"5\"\/><path d=\"M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42\"\/>';\n      }\n    }\n\n    \/\/ === Language Toggle ===\n    const langBtn = document.getElementById('langBtn');\n    const langZh = document.getElementById('langZh');\n    const langEn = document.getElementById('langEn');\n    let savedLang = 'zh';\n    try { savedLang = localStorage.getItem('ert-lang') || 'zh'; } catch (e) {}\n    document.body.setAttribute('data-lang', savedLang);\n    updateLangHighlight(savedLang);\n\n    function updateLangHighlight(lang) {\n      if (lang === 'zh') {\n        langZh.style.opacity = '1';\n        langZh.style.fontWeight = '700';\n        langEn.style.opacity = '0.4';\n        langEn.style.fontWeight = '400';\n      } else {\n        langZh.style.opacity = '0.4';\n        langZh.style.fontWeight = '400';\n        langEn.style.opacity = '1';\n        langEn.style.fontWeight = '700';\n      }\n    }\n\n    langBtn.addEventListener('click', () => {\n      const current = document.body.getAttribute('data-lang');\n      const next = current === 'zh' ? 'en' : 'zh';\n      document.body.setAttribute('data-lang', next);\n      try { localStorage.setItem('ert-lang', next); } catch (e) {}\n      updateLangHighlight(next);\n    });\n\n    \/\/ === Code Tabs ===\n    document.querySelectorAll('.code-tab').forEach(tab => {\n      tab.addEventListener('click', () => {\n        const parent = tab.closest('.code-block');\n        const tabName = tab.getAttribute('data-tab');\n        parent.querySelectorAll('.code-tab').forEach(t => t.classList.remove('active'));\n        parent.querySelectorAll('.code-pane').forEach(p => p.classList.remove('active'));\n        tab.classList.add('active');\n        parent.querySelector('#pane-' + tabName).classList.add('active');\n      });\n    });\n\n    \/\/ === Copy Code ===\n    function copyCode(btn) {\n      const block = btn.closest('.code-block');\n      const activePane = block.querySelector('.code-pane.active');\n      const code = activePane.querySelector('code').innerText;\n      navigator.clipboard.writeText(code).then(() => {\n        const span = btn.querySelector('span');\n        const original = span.textContent;\n        span.textContent = '\\u2713';\n        btn.style.color = 'var(--success)';\n        btn.style.borderColor = 'var(--success)';\n        setTimeout(() => {\n          span.textContent = original;\n          btn.style.color = '';\n          btn.style.borderColor = '';\n        }, 1500);\n      });\n    }\n\n    \/\/ === Reading Progress Bar ===\n    const progressBar = document.getElementById('progressBar');\n    const navbar = document.getElementById('navbar');\n\n    function updateProgress() {\n      const scrollTop = window.scrollY;\n      const docHeight = document.documentElement.scrollHeight - window.innerHeight;\n      const progress = docHeight > 0 ? (scrollTop \/ docHeight) * 100 : 0;\n      progressBar.style.width = progress + '%';\n\n      if (scrollTop > 10) {\n        navbar.classList.add('scrolled');\n      } else {\n        navbar.classList.remove('scrolled');\n      }\n    }\n\n    window.addEventListener('scroll', updateProgress, { passive: true });\n    updateProgress();\n\n    \/\/ === Back to Top ===\n    const backToTop = document.getElementById('backToTop');\n\n    function toggleBackToTop() {\n      if (window.scrollY > 400) {\n        backToTop.classList.add('visible');\n      } else {\n        backToTop.classList.remove('visible');\n      }\n    }\n\n    window.addEventListener('scroll', toggleBackToTop, { passive: true });\n\n    backToTop.addEventListener('click', () => {\n      window.scrollTo({ top: 0, behavior: 'smooth' });\n    });\n\n    \/\/ === Nav Scroll Spy ===\n    const navLinks = document.querySelectorAll('.nav-link');\n    const sections = document.querySelectorAll('section[id]');\n\n    navLinks.forEach(link => {\n      link.addEventListener('click', () => {\n        const targetId = link.getAttribute('data-target');\n        const target = document.getElementById(targetId);\n        if (target) {\n          target.scrollIntoView({ behavior: 'smooth', block: 'start' });\n        }\n      });\n    });\n\n    const spyObserver = new IntersectionObserver((entries) => {\n      entries.forEach(entry => {\n        if (entry.isIntersecting) {\n          const id = entry.target.getAttribute('id');\n          navLinks.forEach(link => {\n            link.classList.toggle('active', link.getAttribute('data-target') === id);\n          });\n        }\n      });\n    }, { rootMargin: '-20% 0px -70% 0px' });\n\n    sections.forEach(section => spyObserver.observe(section));\n\n    \/\/ === Scroll Animation ===\n    const observer = new IntersectionObserver((entries) => {\n      entries.forEach(entry => {\n        if (entry.isIntersecting) {\n          entry.target.classList.add('visible');\n        }\n      });\n    }, { threshold: 0.1 });\n\n    document.querySelectorAll('.fade-in').forEach(el => observer.observe(el));\n  <\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>ERT \u6982\u8ff0Overview \u539f\u7406Principle \u88c5\u7f6eArrays \u6d41\u7a0bWorkflow \u6570\u636e\u5904\u7406Proc [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-402","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/numsimlab.com\/index.php?rest_route=\/wp\/v2\/posts\/402","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/numsimlab.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/numsimlab.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/numsimlab.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/numsimlab.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=402"}],"version-history":[{"count":1,"href":"https:\/\/numsimlab.com\/index.php?rest_route=\/wp\/v2\/posts\/402\/revisions"}],"predecessor-version":[{"id":403,"href":"https:\/\/numsimlab.com\/index.php?rest_route=\/wp\/v2\/posts\/402\/revisions\/403"}],"wp:attachment":[{"href":"https:\/\/numsimlab.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=402"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/numsimlab.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=402"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/numsimlab.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=402"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}