{"id":2273,"date":"2026-01-30T22:28:23","date_gmt":"2026-01-30T20:28:23","guid":{"rendered":"https:\/\/science-x.net\/?page_id=2273"},"modified":"2026-01-30T22:38:37","modified_gmt":"2026-01-30T20:38:37","slug":"telescope-resolution-calculator","status":"publish","type":"page","link":"https:\/\/science-x.net\/?page_id=2273","title":{"rendered":"Telescope Resolution Calculator"},"content":{"rendered":"\n<div class=\"eco-tool wp-block-group\" id=\"eco-tool-telescope-4e2a9\">\n  <div class=\"eco-tool__header\">\n    <h2 class=\"eco-tool__title\">Telescope Resolution Calculator<\/h2>\n    <p class=\"eco-tool__lead\">\n      Estimate a telescope\u2019s theoretical angular resolution using the Rayleigh criterion. Then see what that means for details on the Moon and planets (approximate).\n    <\/p>\n  <\/div>\n\n  <form class=\"eco-tool__form\" id=\"eco-tel-form-4e2a9\" novalidate>\n    <div class=\"eco-tool__grid3\">\n      <!-- Aperture -->\n      <div class=\"eco-tool__field\">\n        <label class=\"eco-tool__label\" for=\"eco-tel-ap-4e2a9\">\n          Aperture diameter<br>(mm)\n        <\/label>\n        <input class=\"eco-tool__input\" id=\"eco-tel-ap-4e2a9\" type=\"number\" min=\"10\" step=\"1\" value=\"130\" inputmode=\"numeric\" \/>\n        <div class=\"eco-tool__hint\">Example: 70, 130, 200 mm.<\/div>\n      <\/div>\n\n      <!-- Mode -->\n      <div class=\"eco-tool__field\">\n        <label class=\"eco-tool__label\" for=\"eco-tel-mode-4e2a9\">\n          Observation<br>type\n        <\/label>\n        <select class=\"eco-tool__input\" id=\"eco-tel-mode-4e2a9\">\n          <option value=\"visual\" selected>Visual (green light ~550 nm)<\/option>\n          <option value=\"photo\">Astrophotography (red ~650 nm)<\/option>\n          <option value=\"solar\">Solar H-alpha (~656 nm)<\/option>\n        <\/select>\n        <div class=\"eco-tool__hint\">Wavelength affects resolution slightly.<\/div>\n      <\/div>\n\n      <!-- Conditions -->\n      <div class=\"eco-tool__field\">\n        <label class=\"eco-tool__label\" for=\"eco-tel-seeing-4e2a9\">\n          Atmospheric seeing<br>(arcsec)\n        <\/label>\n        <input class=\"eco-tool__input\" id=\"eco-tel-seeing-4e2a9\" type=\"number\" min=\"0.5\" step=\"0.1\" value=\"2.0\" inputmode=\"decimal\" \/>\n        <div class=\"eco-tool__hint\">Typical backyard seeing: ~1.5\u20133.0\u2033.<\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"eco-tool__actions\">\n      <button type=\"button\" class=\"wp-element-button eco-tool__btn\" id=\"eco-tel-calc-4e2a9\">Calculate<\/button>\n      <button type=\"button\" class=\"wp-element-button eco-tool__btn eco-tool__btn--ghost\" id=\"eco-tel-reset-4e2a9\">Reset<\/button>\n      <div class=\"eco-tool__error\" id=\"eco-tel-error-4e2a9\" aria-live=\"polite\"><\/div>\n    <\/div>\n  <\/form>\n\n  <div class=\"eco-tool__result\" id=\"eco-tel-result-4e2a9\" hidden>\n    <h3 class=\"eco-tool__subtitle\">Result<\/h3>\n\n    <div class=\"eco-tool__cards\">\n      <div class=\"eco-tool__card\">\n        <div class=\"eco-tool__metric-label\">Diffraction-limited resolution<\/div>\n        <div class=\"eco-tool__metric-value\" id=\"eco-tel-ray-4e2a9\">\u2014<\/div>\n        <div class=\"eco-tool__metric-sub\" id=\"eco-tel-ray-sub-4e2a9\"><\/div>\n      <\/div>\n\n      <div class=\"eco-tool__card\">\n        <div class=\"eco-tool__metric-label\">Realistic resolution<\/div>\n        <div class=\"eco-tool__metric-value\" id=\"eco-tel-real-4e2a9\">\u2014<\/div>\n        <div class=\"eco-tool__metric-sub eco-tool__muted\" id=\"eco-tel-real-sub-4e2a9\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"eco-tool__card eco-tool__card--wide\">\n      <div class=\"eco-tool__metric-label\">What this could resolve (rough)<\/div>\n      <div class=\"eco-tool__mini\" id=\"eco-tel-mini-4e2a9\"><\/div>\n      <div class=\"eco-tool__metric-sub eco-tool__muted\" id=\"eco-tel-tip-4e2a9\"><\/div>\n    <\/div>\n\n    <p class=\"eco-tool__note\">\n      This is a simplified estimate. Optical quality, collimation, magnification, tracking, and processing matter a lot.\n    <\/p>\n  <\/div>\n\n  <details class=\"eco-tool__details\">\n    <summary class=\"eco-tool__summary\">How we calculate<\/summary>\n    <div class=\"eco-tool__details-body\">\n      <p class=\"eco-tool__text\">\n        Rayleigh criterion: \u03b8 \u2248 1.22 \u03bb \/ D (radians), converted to arcseconds.\n        \u201cRealistic\u201d resolution is approximated as the worse of diffraction limit and seeing.\n      <\/p>\n      <ul class=\"eco-tool__list\" id=\"eco-tel-factors-4e2a9\"><\/ul>\n    <\/div>\n  <\/details>\n<\/div>\n\n<style>\n.eco-tool{\n  border: 1px solid rgba(0,0,0,.12);\n  border-radius: 12px;\n  padding: 16px;\n}\n\n.eco-tool__grid3{\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: 16px;\n}\n@media (min-width: 860px){\n  .eco-tool__grid3{ grid-template-columns: 1fr 1fr 1fr; }\n}\n\n.eco-tool__field{\n  display: flex;\n  flex-direction: column;\n  gap: 6px;\n}\n.eco-tool__label{ font-weight: 600; }\n\n.eco-tool__input{\n  height: 44px;\n  padding: 0 12px;\n  border: 1px solid rgba(0,0,0,.2);\n  border-radius: 10px;\n  font: inherit;\n  background: #fff;\n  box-sizing: border-box;\n}\n.eco-tool select.eco-tool__input{\n  appearance: none;\n  padding-right: 40px;\n}\n\n.eco-tool__hint{\n  font-size: .92em;\n  opacity: .78;\n  min-height: 38px;\n}\n\n.eco-tool__actions{\n  display: flex;\n  gap: 10px;\n  margin-top: 16px;\n  align-items: center;\n  flex-wrap: wrap;\n}\n.eco-tool__btn{ padding: 10px 22px; }\n.eco-tool__btn--ghost{\n  background: transparent !important;\n  border: 1px solid rgba(0,0,0,.2) !important;\n}\n.eco-tool__btn--ghost:hover,\n.eco-tool__btn--ghost:focus{\n  background: rgba(0,0,0,.06) !important;\n  border-color: rgba(0,0,0,.35) !important;\n}\n\n.eco-tool__error{\n  font-weight: 600;\n  min-height: 1.2em;\n  flex: 1 1 240px;\n}\n\n.eco-tool__result{ margin-top: 16px; }\n.eco-tool__subtitle{ margin: 0 0 10px; }\n\n.eco-tool__cards{\n  display: grid;\n  gap: 10px;\n  grid-template-columns: 1fr;\n}\n@media (min-width: 860px){\n  .eco-tool__cards{ grid-template-columns: 1fr 1fr; }\n}\n\n.eco-tool__card{\n  border: 1px solid rgba(0,0,0,.12);\n  border-radius: 12px;\n  padding: 12px;\n}\n.eco-tool__card--wide{ margin-top: 10px; }\n\n.eco-tool__metric-label{ opacity: .85; font-weight: 600; }\n.eco-tool__metric-value{ font-size: 1.6em; font-weight: 800; margin-top: 6px; line-height: 1.1; }\n.eco-tool__metric-sub{ opacity: .85; margin-top: 6px; }\n.eco-tool__muted{ opacity: .8; }\n\n.eco-tool__mini{\n  display: grid;\n  gap: 8px;\n  margin-top: 10px;\n}\n.eco-tool__minirow{\n  display: grid;\n  grid-template-columns: 170px 1fr;\n  gap: 10px;\n  align-items: baseline;\n}\n@media (max-width: 480px){\n  .eco-tool__minirow{ grid-template-columns: 130px 1fr; }\n}\n.eco-tool__minilabel{ font-weight: 700; opacity: .9; }\n.eco-tool__minival{ opacity: .9; }\n\n.eco-tool__note{ margin-top: 10px; opacity: .9; }\n\n.eco-tool__details{ margin-top: 14px; }\n.eco-tool__summary{ cursor: pointer; font-weight: 700; }\n.eco-tool__details-body{ margin-top: 10px; }\n.eco-tool__list{ padding-left: 18px; }\n<\/style>\n\n<script>\n(function(){\n  const S = \"4e2a9\";\n  const el = (id) => document.getElementById(id + \"-\" + S);\n\n  const apEl = el(\"eco-tel-ap\");\n  const modeEl = el(\"eco-tel-mode\");\n  const seeingEl = el(\"eco-tel-seeing\");\n\n  const calcBtn = el(\"eco-tel-calc\");\n  const resetBtn = el(\"eco-tel-reset\");\n  const errorEl = el(\"eco-tel-error\");\n\n  const resultEl = el(\"eco-tel-result\");\n  const rayEl = el(\"eco-tel-ray\");\n  const raySubEl = el(\"eco-tel-ray-sub\");\n  const realEl = el(\"eco-tel-real\");\n  const realSubEl = el(\"eco-tel-real-sub\");\n\n  const miniEl = el(\"eco-tel-mini\");\n  const tipEl = el(\"eco-tel-tip\");\n  const factorsEl = el(\"eco-tel-factors\");\n\n  const ARCSEC_PER_RAD = 206265;\n\n  const MODES = {\n    visual: { label:\"Visual\", lambdaNm: 550 },\n    photo:  { label:\"Photo (red)\", lambdaNm: 650 },\n    solar:  { label:\"Solar H-alpha\", lambdaNm: 656 }\n  };\n\n  \/\/ Distances (km) for rough \u201cdetail size\u201d conversion\n  \/\/ Small-angle: size \u2248 distance * theta(rad)\n  const DIST = {\n    moon:    { name:\"Moon\", km: 384400 },\n    mars:    { name:\"Mars (typical)\", km: 225000000 },\n    jupiter: { name:\"Jupiter (typical)\", km: 628000000 }\n  };\n\n  function setError(msg){ errorEl.textContent = msg || \"\"; }\n\n  function fmt(n, d){\n    const p = (typeof d === \"number\") ? d : 2;\n    return (Math.round(n * Math.pow(10,p)) \/ Math.pow(10,p)).toLocaleString(undefined,{\n      minimumFractionDigits:p, maximumFractionDigits:p\n    });\n  }\n\n  function fillFactors(){\n    factorsEl.innerHTML = [\n      `<li><strong>Rayleigh:<\/strong> \u03b8 \u2248 1.22 \u03bb \/ D<\/li>`,\n      `<li><strong>Converted:<\/strong> radians \u2192 arcseconds (\u00d7 ${ARCSEC_PER_RAD})<\/li>`,\n      `<li><strong>Real-world:<\/strong> limited by worse of diffraction and seeing<\/li>`\n    ].join(\"\");\n  }\n\n  function calc(){\n    setError(\"\");\n\n    const Dmm = Number(apEl.value);\n    const seeing = Number(seeingEl.value);\n    const mode = MODES[modeEl.value] || MODES.visual;\n\n    if (!Number.isFinite(Dmm) || Dmm < 10){\n      setError(\"Please enter a valid aperture (minimum 10 mm).\");\n      resultEl.hidden = true;\n      return;\n    }\n    if (!Number.isFinite(seeing) || seeing <= 0){\n      setError(\"Please enter a valid seeing value (arcseconds).\");\n      resultEl.hidden = true;\n      return;\n    }\n\n    const Dm = Dmm \/ 1000;             \/\/ meters\n    const lambda = mode.lambdaNm * 1e-9; \/\/ meters\n\n    const thetaRad = 1.22 * lambda \/ Dm;\n    const thetaArcsec = thetaRad * ARCSEC_PER_RAD;\n\n    const realisticArcsec = Math.max(thetaArcsec, seeing);\n\n    rayEl.textContent = `${fmt(thetaArcsec, 2)}\u2033`;\n    raySubEl.textContent = `Rayleigh limit (${mode.label}, \u03bb \u2248 ${mode.lambdaNm} nm)`;\n\n    realEl.textContent = `${fmt(realisticArcsec, 2)}\u2033`;\n    realSubEl.textContent = `Limited by seeing (${fmt(seeing,1)}\u2033) or optics, whichever is worse`;\n\n    \/\/ Convert to linear detail sizes\n    const rows = [\n      [\"Moon\", DIST.moon.km],\n      [\"Mars\", DIST.mars.km],\n      [\"Jupiter\", DIST.jupiter.km]\n    ].map(([name, distKm]) => {\n      const distM = distKm * 1000;\n      const sizeM = distM * (realisticArcsec \/ ARCSEC_PER_RAD); \/\/ using theta(rad) = arcsec\/206265\n      let out = \"\";\n      if (sizeM < 1000) out = `${fmt(sizeM,0)} m`;\n      else out = `${fmt(sizeM\/1000,1)} km`;\n\n      return `\n        <div class=\"eco-tool__minirow\">\n          <div class=\"eco-tool__minilabel\">${name}<\/div>\n          <div class=\"eco-tool__minival\">~${out} smallest detail (rough)<\/div>\n        <\/div>\n      `;\n    }).join(\"\");\n\n    miniEl.innerHTML = rows;\n\n    \/\/ A simple tip\n    if (seeing > 2.5) tipEl.textContent = \"Tip: On most nights, atmospheric seeing limits detail more than aperture. Try observing when the object is high in the sky.\";\n    else if (Dmm < 100) tipEl.textContent = \"Tip: A larger aperture can help, but stability\/collimation and good seeing nights matter just as much.\";\n    else tipEl.textContent = \"Tip: For planets, steady air + proper magnification often beats raw aperture.\";\n\n    resultEl.hidden = false;\n  }\n\n  function reset(){\n    apEl.value = \"130\";\n    modeEl.value = \"visual\";\n    seeingEl.value = \"2.0\";\n    setError(\"\");\n    resultEl.hidden = true;\n  }\n\n  fillFactors();\n  calcBtn.addEventListener(\"click\", calc);\n  resetBtn.addEventListener(\"click\", reset);\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>Telescope Resolution Calculator Estimate a telescope\u2019s theoretical angular resolution using the Rayleigh criterion. Then see what that means for details on the Moon and planets (approximate). Aperture diameter(mm) Example: 70,&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":2295,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_sitemap_exclude":false,"_sitemap_priority":"","_sitemap_frequency":"","footnotes":""},"_links":{"self":[{"href":"https:\/\/science-x.net\/index.php?rest_route=\/wp\/v2\/pages\/2273"}],"collection":[{"href":"https:\/\/science-x.net\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/science-x.net\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/science-x.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/science-x.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2273"}],"version-history":[{"count":1,"href":"https:\/\/science-x.net\/index.php?rest_route=\/wp\/v2\/pages\/2273\/revisions"}],"predecessor-version":[{"id":2274,"href":"https:\/\/science-x.net\/index.php?rest_route=\/wp\/v2\/pages\/2273\/revisions\/2274"}],"up":[{"embeddable":true,"href":"https:\/\/science-x.net\/index.php?rest_route=\/wp\/v2\/pages\/2295"}],"wp:attachment":[{"href":"https:\/\/science-x.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}