Andorra Under the Milky Way: Pyrenean Passes, High Valleys & Mountain Skies

Stargazing in Andorra changes quickly between open road passes, enclosed glacial valleys and the certified sky territory of La Massana. The shared planning window is 1 August–30 September 2026, when all eight locations receive the same full-window darkness calculation and late-summer access context. The score covers a selected portfolio rather than every slope, road or settlement in the principality.

Andorra Stargazing Score
70/100
Selected eight-location portfolio
Highest-Rated Location
Coll de la Botella · 83/100
High pass in La Massana
Target Observing Window
1 Aug–30 Sep 2026
61-night darkness calculation
Locations Assessed
8
Same set across map, scores and comparison
Verified Starlight Territory
La Massana · Comapedrosa
Destination and reserve status are not countrywide
Main Planning Risk
Cloud, fog and closed horizons
High elevation does not remove mountain-weather limits

Andorra Night-Sky Planning Map

Markers show approximate planning centers, not guaranteed legal parking, exact observing pull-offs or unrestricted night access.

Use the marker as an area reference. Check current road, gate, resort and protected-area rules before setting out.

Andorra Stargazing Suitability Score

This transparent editorial suitability index compares the selected location portfolio through disclosed darkness, cloud, atmospheric, horizon, access and astronomy-support evidence. It is not an official sky classification, a live forecast or a guarantee of access.

70

Andorra’s portfolio is strongest where La Massana’s verified Starlight status overlaps with a usable road pass or a planned refuge approach. Enclosed valleys, resort light, fog exposure and unresolved night access reduce the national portfolio score.

Highest-Rated LocationColl de la Botella · 83/100
Target Observing Window1 August–30 September 2026
Locations Assessed8
Factor Coverage7/7
Method Version2.2
Last Reviewed25 July 2026
Comparability QualityC · categorical climate and light proxies
Score ScopeSelected Location Portfolio
Artificial-Light Escape30%70/100
Clear-Sky Reliability20%62/100
Atmospheric Transparency Potential15%78/100
Astronomical Darkness Duration10%85/100
Elevation and Horizon Quality10%70/100
Night Access and Legal Clarity10%78/100
Dark-Sky Protection and Astronomy Support5%38/100

Weighted Total: 70×0.30 + 62.5×0.20 + 77.5×0.15 + 85.1×0.10 + 70×0.10 + 77.5×0.10 + 37.5×0.05 = 70.3 → 70/100

Read the Stargazing Suitability Score methodology

Eight Andorran Stargazing Areas Ranked

The cards use the same seven factors and the same August–September window. Search and filters do not change the ranking.

8 locations shown

Coll de la Botella

Pal, La Massana · 2,069 m

83/100
Highest-Rated Location

The strongest balance in the portfolio comes from a high road pass with verified astronomy use, broad sky sectors and a practical return route.

Starlight territoryRoadsideHigh passTelescope
Light Escape 85Clear Sky 70Access 85
  • The CG-4 reaches a widened road section beside the viewpoint at more than 2,000 metres.
  • La Massana promotes this pass as one of its two public star-observation viewpoints.
  • Setúria opens the western side while the La Massana settlements sit lower in the opposite direction.
  • A firm roadside surface suits short telescope sessions better than hike-in terrain.

Planning constraint: Passing headlights, wind and resort activity can interrupt dark adaptation. Verify the road status, use a legal stopping area and keep access lanes open.

Comapedrosa Refuge Zone

Comapedrosa Natural Park, La Massana · 2,265 m

78/100

Darkness is the main reason to use this zone. It suits a planned refuge stay or an experienced mountain itinerary, not an improvised drive-up session.

Starlight ReserveHike-inRemoteRefuge-based
Light Escape 95Clear Sky 55Access 50
  • The refuge zone lies inside the Comapedrosa Natural Park Starlight Reserve rather than merely within the wider tourist destination.
  • The staffed refuge sits at about 2,265 metres and is reached on mountain paths from Arinsal.
  • Local settlement light is screened more effectively than at the roadside viewpoints.
  • The surrounding ridges reduce low-altitude sky even when the zenith remains dark.

Planning constraint: The return involves mountain travel after sunset. Book refuge services where needed, arrive before sunset and carry a route plan that does not depend on mobile signal.

Roc de la Sabina

Arinsal, La Massana · 1,896 m

75/100

This is the most approachable Starlight-linked option for observers who need a defined viewpoint and a short return to Arinsal.

Starlight territoryRoadsideEasy accessPhotography
Light Escape 70Clear Sky 70Access 85
  • The viewpoint stands on the CS-520 above Arinsal at 1,896 metres.
  • Astronomical interpretation panels support naked-eye orientation and public outreach.
  • The Comapedrosa skyline forms a strong western foreground for wide-angle work.
  • Arinsal is close enough for local lighting to matter more than at the refuge zone.

Planning constraint: Shield the camera and observer from nearby vehicle lights. The site is accessible, but that does not establish unrestricted overnight use on every date.

Ordino Arcalís–Tristaina Base Area

La Coma, Ordino · 2,220 m

74/100

The base area offers the horizon advantage of an alpine basin without treating the 2,701-metre viewpoint as a casual night pull-off.

High basinSeasonal accessPhotographyTelescope
Light Escape 70Clear Sky 70Access 70
  • La Coma is the 2,220-metre starting area for the Tristaina lakes and Solar Viewpoint routes.
  • The cirque supplies broad upper-sky exposure, with ridge obstruction concentrated near the horizon.
  • Resort and lift infrastructure can introduce local light even when the surrounding mountains remain sparsely settled.
  • The Solar Viewpoint itself stands at 2,701 metres and requires a mountain approach beyond the base.

Planning constraint: During the 2026 summer operation, motor traffic is restricted above the resort base and lifts close before astronomical darkness. Plan an independent walking return and verify current resort rules.

Sorteny–Rialb Valley Access

Sorteny Natural Park, Ordino · 1,780 m

71/100

Sorteny rewards observers whose targets remain high in the sky. It is less suitable for low southern objects or broad meteor coverage.

Protected valleyHike-inRemoteTelescope
Light Escape 85Clear Sky 55Access 70
  • The planning marker uses the official Sorteny car-park and information-point area at about 1,780 metres.
  • The Rialb path climbs through a narrow valley toward a refuge bridge near 1,980 metres.
  • Low settlement pressure helps light escape, while the valley walls remove large low-altitude sky sectors.
  • Official route material notes that the French side beyond the high passes can be misty in summer.

Planning constraint: Night access rules and any gate arrangements require a current check. Stay on defined paths, avoid livestock areas and plan the return before entering the valley.

Port d'Envalira

Encamp–Canillo boundary · 2,408 m

66/100

Elevation and horizon are strong here, but the pass loses points for nearby lighting, weather exposure and the absence of verified astronomy support.

RoadsideHigh passWide horizonPhotography
Light Escape 55Clear Sky 55Access 85
  • The paved pass reaches roughly 2,408 metres and gives wider sky sectors than Andorra’s enclosed valleys.
  • Pas de la Casa and ski infrastructure create a stronger eastern light influence than in the western protected areas.
  • High elevation improves the dry-air potential when the pass is outside cloud.
  • Traffic, fog and exposed wind can undermine long-exposure work.

Planning constraint: Check fog, wind, snow and road conditions before departure. Do not stop on the carriageway or block maintenance areas.

Vall d'Incles–Baladosa

Canillo · about 1,840 m

62/100

Incles is useful for mountain-silhouette photography and high-altitude targets, provided the vehicle restriction and narrow horizon are treated as part of the observation plan.

Glacial valleyHike-inRemotePhotography
Light Escape 70Clear Sky 55Access 50
  • The marker sits near the Baladosa end of the U-shaped Incles valley rather than at an assumed roadside observing bay.
  • Canillo’s official information closes the valley road to private vehicles from mid-June to mid-September.
  • The daytime electric transport ends before astronomical darkness, so a night visit requires a walking plan.
  • Steep valley walls can hide the southern Milky Way core earlier than an open pass.

Planning constraint: Do not base the return on the daytime electric service. Verify protected-area rules, use the established path and carry lighting that can be dimmed near other observers.

Engolasters–Les Pardines

Encamp–Escaldes-Engordany · about 1,620 m

62/100

This lower site trades sky quality for a simpler return route. It works best as a short city escape rather than a dark-core substitute.

Easy accessCity escapeLake foregroundPhotography
Light Escape 55Clear Sky 70Access 85
  • Engolasters supplies a practical central-Andorra alternative with road access and a defined walking route toward Les Pardines.
  • The lake and wooded slopes create foreground options but restrict several horizon sectors.
  • Andorra la Vella, Escaldes-Engordany and Encamp contribute more artificial light than at the northern park sites.
  • Moisture near the lake can increase lens condensation on calm nights.

Planning constraint: Choose a legal stopping place, keep clear of restaurant and activity access, and expect visible urban glow toward the central valley.

Where La Massana’s Starlight Status Stops

The certification applies to named territory, not to every mountain in Andorra.

Comapedrosa Reserve Core

Fundación Starlight lists Andorra Comapedrosa as a Starlight Reserve from January 2023. The protected core is associated with Comapedrosa Natural Park, where the refuge zone receives the portfolio’s highest Artificial-Light Escape score.

That status supports a darkness claim for the certified area. It does not establish a single Bortle class, a universal SQM reading or open vehicle access.

La Massana Tourist Destination

La Massana is also listed as a Starlight Tourist Destination. Roc de la Sabina and Coll de la Botella are the parish’s promoted public observation points, giving them stronger astronomy-support scores than comparable passes elsewhere in the country.

The Starlight Foundation announced Andorra Comapedrosa as host of the 2027 International Starlight Meeting. That development shows active institutional support without changing the boundaries of the certified territory.

2027 International Starlight Meeting announcement

Coll de la Botella, Envalira or a Glacial Valley?

Andorra’s terrain can screen settlement light and erase the same low sky needed for Milky Way-core work.

Terrain patternNamed examplesUsable skyTypical interruptionBetter match
Open road passColl de la Botella; Port d’EnvaliraBroad horizon sectors and long meteor tracksWind, fog, headlights and road activityShort telescope sessions, meteor watching, wide-angle photography
Certified hike-in coreComapedrosa Refuge ZoneLow local light with strong zenith darknessMountain return and ridge-limited horizonPlanned refuge-based observing
Northern protected valleySorteny–RialbDark high sky through a north–south corridorMist and blocked low-altitude targetsZenith targets and compact telescope fields
Eastern glacial valleyVall d’Incles–BaladosaDark upper sky with mountain foregroundsPrivate-vehicle closure and early loss of the southern coreMountain-silhouette photography
Central lower escapeEngolasters–Les PardinesConvenient upper-sky viewingCentral-valley glow, trees and lake moistureShort sessions from Andorra la Vella or Encamp

The Southern Milky Way Through Andorra’s Y-Shaped Valleys

A dark zenith does not guarantee a clear view toward Sagittarius and Scorpius.

Western Pass Geometry

Coll de la Botella opens useful western and southwestern sectors above Setúria. Its advantage is geometric: the horizon stays lower than in the bottom of Arinsal or Incles. La Massana lights remain directional rather than absent.

Central-Valley Glow

Engolasters sits above the Andorra la Vella–Escaldes-Engordany–Encamp corridor. Terrain can hide individual lamps while diffuse glow remains visible through valley gaps, especially toward the urban center.

Eastern Ridge Cutoff

Incles and the Arcalís basin give strong alpine foregrounds, but ridge height controls how long the low southern Milky Way remains visible. Wide-angle composition and astronomical target visibility are separate decisions.

For August and September, arrive before twilight ends and inspect the southern skyline in daylight. A ridge that rises only a few degrees can remove the lowest part of the core before the darkest part of the night.

Lifts Close, Valley Vehicles Stop and the Return Still Remains

The observation plan must work after the daytime transport system has ended.

Ordino Arcalís in 2026

The resort states that the Tristaina gondola and Creussans chairlift operate during the 2026 summer season, with daytime closing times. The resort’s 2026 access notice closes the CG-3 section between Hortell and La Coma to motor traffic during the summer access period. A sunset observer at La Coma or higher ground needs a walking return independent of the lifts.

Check current summer lift hours

Vall d’Incles Vehicle Closure

Official visitor information states that private vehicles are excluded from mid-June to mid-September and that electric transport runs from 08:00 to 18:00. Astronomical darkness falls outside that service window. A night visit therefore begins and ends as a pedestrian route unless current local arrangements say otherwise.

Check Vall d’Incles access information

Comapedrosa Refuge Approach

The refuge area is not a drive-up marker. The card coordinate represents the refuge zone inside the park. A booked stay can remove a late descent, while an independent visit requires mountain navigation, suitable clothing and a defined turnaround time.

Roadside White Light

Coll de la Botella, Roc de la Sabina and Port d’Envalira simplify the return but expose observers to headlights. Park legally, avoid white light near another setup and never use a service road or carriageway as an equipment area.

Andorra Location Score Comparison

The order matches the map, legend and cards. Equal visible scores use the raw total only to keep a stable display order.

RankLocationScoreLight EscapeClear SkyHorizonNight AccessMain constraint
1Coll de la Botella83/10085708585Headlights and pass wind
2Comapedrosa Refuge Zone78/10095557050Hike-in mountain return
3Roc de la Sabina75/10070707085Arinsal light influence
4Ordino Arcalís–Tristaina Base Area74/10070708570Lift and road timing
5Sorteny–Rialb Valley Access71/10085557070Valley enclosure and mist
6Port d'Envalira66/10055558585Pas de la Casa glow and fog
7Vall d'Incles–Baladosa62/10070555050Vehicle closure and narrow south
8Engolasters–Les Pardines62/10055705085Central urban glow and moisture

Tonight’s Astronomical Darkness

Calculated live from each location’s coordinates using NOAA’s public solar-position formula. Weather, cloud cover and local obstructions are not included.

Calculating…

Verification and Planning Limits

Last Reviewed: 25 July 2026

Target Observing Window: 1 August–30 September 2026

Locations Assessed: 8

Method Version: 2.2

Comparability Quality: C

Principal Periods: Current access and certification pages reviewed in July 2026; darkness calculated for all 61 nights in the 2026 target window.

Limits: Artificial light, clear sky and atmospheric transparency rely partly on disclosed categorical rubrics because no point SQM, extracted VIIRS, cloud-cover or water-vapour series is claimed. Coordinates are approximate planning centers. Mountain ridges are not included in the solar calculation.

Source Groups: Fundación Starlight; Andorra Turisme; Visit La Massana; Ordino Arcalís; Andorra National Meteorological Service; Andorra Climate Observatory; NOAA solar-position equations.

Road, gate, lift, snow, wind, fog and protected-area conditions require a fresh check on the observation date.

(function(){ “use strict”; var boot=function(){ var root=document.getElementById(“stargaze-in-andorra”); if(!root){return;} var mapElement=document.getElementById(“dsky-map-andorra”); var prefersReduced=false; if(typeof window.matchMedia===”function”){ prefersReduced=window.matchMedia(“(prefers-reduced-motion: reduce)”).matches; } var mapData=[ {name:”Coll de la Botella”,region:”Pal, La Massana”,lat:”42.552036″,lng:”1.454361″,score:83,raw:82.7600,cardId:”coll-de-la-botella-card”}, {name:”Comapedrosa Refuge Zone”,region:”Comapedrosa Natural Park”,lat:”42.579140″,lng:”1.449326″,score:78,raw:77.7600,cardId:”comapedrosa-refuge-zone-card”}, {name:”Roc de la Sabina”,region:”Arinsal, La Massana”,lat:”42.572380″,lng:”1.473360″,score:75,raw:74.5100,cardId:”roc-de-la-sabina-card”}, {name:”Ordino Arcalís–Tristaina Base Area”,region:”La Coma, Ordino”,lat:”42.635200″,lng:”1.514800″,score:74,raw:74.2600,cardId:”ordino-arcalis-tristaina-base-card”}, {name:”Sorteny–Rialb Valley Access”,region:”Sorteny Natural Park”,lat:”42.626267″,lng:”1.551817″,score:71,raw:70.7600,cardId:”sorteny-rialb-valley-access-card”}, {name:”Port d’Envalira”,region:”Eastern Andorra”,lat:”42.540600″,lng:”1.719200″,score:66,raw:65.7600,cardId:”port-denvalira-card”}, {name:”Vall d’Incles–Baladosa”,region:”Vall d’Incles, Canillo”,lat:”42.601944″,lng:”1.686944″,score:62,raw:62.2600,cardId:”vall-dincles-baladosa-card”}, {name:”Engolasters–Les Pardines”,region:”Central Andorra”,lat:”42.516900″,lng:”1.568500″,score:62,raw:62.0100,cardId:”engolasters-les-pardines-card”} ]; var scrollToCard=function(cardId){ var card=document.getElementById(cardId); if(!card){return;} if(prefersReduced){ card.scrollIntoView(); }else{ card.scrollIntoView({behavior:”smooth”,block:”start”}); } card.classList.add(“is-highlighted”); window.setTimeout(function(){ card.classList.remove(“is-highlighted”); },1600); }; var createMarkerIcon=function(index){ var markerNode=document.createElement(“span”); markerNode.className=”dsky-marker”; markerNode.setAttribute(“aria-hidden”,”true”); markerNode.textContent=String(index+1); return window.L.divIcon({ className:””, html:markerNode, iconSize:[34,34], iconAnchor:[17,17], popupAnchor:[0,-18] }); }; var createPopup=function(location){ var popup=document.createElement(“div”); popup.className=”dsky-popup”; var name=document.createElement(“strong”); name.textContent=location.name; popup.appendChild(name); popup.appendChild(document.createElement(“br”)); var summary=document.createElement(“span”); summary.textContent=location.region+” · “+location.score+”/100”; popup.appendChild(summary); popup.appendChild(document.createElement(“br”)); var detail=document.createElement(“a”); detail.className=”dsky-popup-detail”; detail.href=”#”+location.cardId; detail.dataset.cardId=location.cardId; detail.textContent=”View Details Below”; detail.addEventListener(“click”,function(event){ event.preventDefault(); scrollToCard(location.cardId); }); popup.appendChild(detail); return popup; }; var leafletAttempts=0; var markerObjects=[]; var initMap=function(){ if(!mapElement){return;} if(mapElement.dataset.ready===”1″){return;} if(mapElement._leaflet_id){return;} if(typeof window.L===”undefined”){ leafletAttempts+=1; if(leafletAttempts===4){ if(!document.querySelector(“script[data-dsky-leaflet-fallback]”)){ var fallback=document.createElement(“script”); fallback.src=”https://cdn.jsdelivr.net/npm/leaflet@1.9.4/dist/leaflet.js”; fallback.dataset.dskyLeafletFallback=”1″; fallback.onload=initMap; document.head.appendChild(fallback); } } if(leafletAttempts===24){ return; } window.setTimeout(initMap,250); return; } mapElement.dataset.ready=”1″; var map=window.L.map(mapElement,{scrollWheelZoom:false,attributionControl:true}); mapElement._dskyMap=map; if(map.attributionControl){ map.attributionControl.setPrefix(false); } window.L.tileLayer(“https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png”,{ maxZoom:19, attribution:”\u00A9 OpenStreetMap contributors” }).addTo(map); var bounds=[]; mapData.forEach(function(location,index){ var lat=Number(location.lat); var lng=Number(location.lng); var marker=window.L.marker([lat,lng],{ icon:createMarkerIcon(index) }).addTo(map).bindPopup(createPopup(location)); markerObjects.push(marker); bounds.push([lat,lng]); }); if(bounds.length===8){ map.fitBounds(bounds,{padding:[32,32],maxZoom:6}); } window.requestAnimationFrame(function(){ window.requestAnimationFrame(function(){ map.invalidateSize(); }); }); window.setTimeout(function(){map.invalidateSize();},250); window.setTimeout(function(){map.invalidateSize();},1000); window.addEventListener(“resize”,function(){map.invalidateSize();}); if(typeof window.ResizeObserver===”function”){ var observer=new window.ResizeObserver(function(){map.invalidateSize();}); observer.observe(mapElement); } var legendButtons=Array.prototype.slice.call(root.querySelectorAll(“.dsky-map-item”)); legendButtons.forEach(function(button){ button.addEventListener(“click”,function(){ var index=Number(button.dataset.mapIndex); var marker=markerObjects[index]; if(!marker){return;} marker.openPopup(); map.panTo(marker.getLatLng()); mapElement.focus(); }); }); }; initMap(); var evidenceButtons=Array.prototype.slice.call(root.querySelectorAll(“.dsky-evidence-toggle”)); evidenceButtons.forEach(function(button){ button.addEventListener(“click”,function(){ var panelId=button.getAttribute(“aria-controls”); var panel=document.getElementById(panelId); if(!panel){return;} var expanded=button.getAttribute(“aria-expanded”)===”true”; if(expanded){ panel.hidden=true; button.setAttribute(“aria-expanded”,”false”); button.textContent=”View Method, Location Values and Sources”; }else{ panel.hidden=false; button.setAttribute(“aria-expanded”,”true”); button.textContent=”Hide Method, Location Values and Sources”; } }); }); var cards=Array.prototype.slice.call(root.querySelectorAll(“.dsky-spot-card”)); var searchInput=document.getElementById(“andorra-location-search”); var filterButtons=Array.prototype.slice.call(root.querySelectorAll(“.dsky-filter-btn”)); var resultCount=root.querySelector(“.dsky-result-count”); var activeFilter=”all”; var applyFilters=function(){ var query=””; if(searchInput){ query=searchInput.value.toLowerCase().replace(/^\s+|\s+$/g,””); } var visibleCount=0; cards.forEach(function(card){ var text=(card.dataset.name+” “+card.dataset.region+” “+card.dataset.tags).toLowerCase(); var queryMatch=true; if(query!==””){ queryMatch=text.indexOf(query)!==-1; } var filterMatch=true; if(activeFilter!==”all”){ filterMatch=card.dataset.tags.split(” “).indexOf(activeFilter)!==-1; } var show=false; if(queryMatch){ if(filterMatch){ show=true; } } card.hidden=!show; if(show){visibleCount+=1;} }); if(resultCount){ if(visibleCount===1){ resultCount.textContent=”1 location shown”; }else{ resultCount.textContent=String(visibleCount)+” locations shown”; } } }; if(searchInput){ searchInput.addEventListener(“input”,applyFilters); } filterButtons.forEach(function(button){ button.addEventListener(“click”,function(){ activeFilter=button.dataset.filter; filterButtons.forEach(function(item){ var selected=item===button; item.setAttribute(“aria-pressed”,selected?”true”:”false”); if(selected){ item.classList.add(“is-active”); }else{ item.classList.remove(“is-active”); } }); applyFilters(); }); }); var scoreCard=root.querySelector(“.dsky-score-card”); var factorNodes=Array.prototype.slice.call(root.querySelectorAll(“.dsky-score-factor”)); var weightTotal=0; var weightedTotal=0; var formulaParts=[]; factorNodes.forEach(function(node){ var score=Number(node.dataset.score); var weight=Number(node.dataset.weight); weightTotal+=weight; weightedTotal+=score*weight/100; formulaParts.push(String(Number(score).toFixed(1)).replace(“.0″,””)+”\u00D7″+(weight/100).toFixed(2)); var visible=node.querySelector(“.dsky-score-value”); if(visible){visible.textContent=String(Math.round(score))+”/100″;} }); var countryRounded=Math.round(weightedTotal); if(weightTotal===100){ if(factorNodes.length===7){ if(scoreCard){scoreCard.dataset.overallScore=String(countryRounded);} var scoreNumber=root.querySelector(“.dsky-score-number”); if(scoreNumber){scoreNumber.textContent=String(countryRounded);} var countryDisplays=Array.prototype.slice.call(root.querySelectorAll(“[data-country-score-display]”)); countryDisplays.forEach(function(node){node.textContent=String(countryRounded);}); var formulaText=root.querySelector(“.dsky-weighted-formula”); if(formulaText){formulaText.textContent=formulaParts.join(” + “);} var formulaResult=root.querySelector(“.dsky-weighted-result”); if(formulaResult){formulaResult.textContent=weightedTotal.toFixed(1)+” \u2192 “+countryRounded+”/100″;} } } var locationRows=[]; cards.forEach(function(card,index){ var light=Number(card.dataset.lightScore); var clear=Number(card.dataset.clearScore); var atmosphere=Number(card.dataset.atmosphereScore); var darkness=Number(card.dataset.darknessScore); var horizon=Number(card.dataset.horizonScore); var access=Number(card.dataset.accessScore); var support=Number(card.dataset.supportScore); var calculatedRaw=light*0.30+clear*0.20+atmosphere*0.15+darkness*0.10+horizon*0.10+access*0.10+support*0.05; var calculatedScore=Math.round(calculatedRaw); var storedRaw=Number(card.dataset.locationScoreRaw); var rawMatches=Number(storedRaw).toFixed(4)===Number(calculatedRaw).toFixed(4); card.dataset.locationScore=String(calculatedScore); card.dataset.locationScoreValid=rawMatches?”1″:”0”; var visible=card.querySelector(“.dsky-location-score-number”); if(visible){visible.textContent=String(calculatedScore);} locationRows.push({card:card,name:card.dataset.locationName,score:calculatedScore,raw:calculatedRaw,index:index}); }); var sortedRows=locationRows.slice().sort(function(first,second){ var scoreOrder=second.score-first.score; if(scoreOrder!==0){return scoreOrder;} return second.raw-first.raw; }); var staticOrderValid=locationRows.every(function(row,index){ return row.card===sortedRows[index].card; }); var mapOrderValid=mapData.every(function(location,index){ var row=locationRows[index]; if(!row){return false;} if(location.name!==row.name){return false;} return Number(location.raw).toFixed(4)===Number(row.raw).toFixed(4); }); var legendRows=Array.prototype.slice.call(root.querySelectorAll(“.dsky-map-item”)); var legendOrderValid=legendRows.every(function(button,index){ var row=locationRows[index]; if(!row){return false;} var nameNode=button.querySelector(“.dsky-map-name”); if(!nameNode){return false;} return nameNode.textContent===row.name; }); root.dataset.staticOrderValid=staticOrderValid?”1″:”0″; root.dataset.mapOrderValid=mapOrderValid?”1″:”0″; root.dataset.legendOrderValid=legendOrderValid?”1″:”0″; if(sortedRows.length===8){ var topScore=sortedRows[0].score; var leaders=sortedRows.filter(function(row){return row.score===topScore;}); var leaderNames=leaders.map(function(row){return row.name;}); root.dataset.bestLocation=leaderNames.join(” | “); root.dataset.bestLocationScore=String(topScore); root.dataset.bestLocationCount=String(leaders.length); var labelText=leaders.length===1?”Highest-Rated Location”:”Joint Highest-Rated Locations”; var badgeText=leaders.length===1?”Highest-Rated Location”:”Joint Highest-Rated Location”; var labelNodes=Array.prototype.slice.call(root.querySelectorAll(“[data-best-location-label]”)); var nameNodes=Array.prototype.slice.call(root.querySelectorAll(“[data-best-location-name]”)); var scoreNodes=Array.prototype.slice.call(root.querySelectorAll(“[data-best-location-score]”)); labelNodes.forEach(function(node){node.textContent=labelText;}); nameNodes.forEach(function(node){node.textContent=leaderNames.join(“, “);}); scoreNodes.forEach(function(node){node.textContent=String(topScore);}); cards.forEach(function(card){ var isLeader=Number(card.dataset.locationScore)===topScore; var badge=card.querySelector(“.dsky-top-badge”); if(isLeader){ card.classList.add(“is-top-location”); if(!badge){ badge=document.createElement(“span”); badge.className=”dsky-top-badge”; var topArea=card.querySelector(“.dsky-spot-top”); if(topArea){ topArea.parentNode.insertBefore(badge,topArea.nextSibling); } } if(badge){badge.textContent=badgeText;} }else{ card.classList.remove(“is-top-location”); if(badge){badge.parentNode.removeChild(badge);} } }); } }; if(document.readyState===”loading”){ document.addEventListener(“DOMContentLoaded”,boot,{once:true}); }else{ boot(); } })();
📌

Complete guide: Stargazing Countries

Scroll to Top