L = require('leaflet@1.9.4')
// Load the CSV file
qsosData = FileAttachment("qsos.json").json()
map = {
// Extract my station details
const myLocation = {
lat: qsosData.my_lat,
lon: qsosData.my_lon,
callsign: qsosData.my_callsign,
sota: qsosData.my_sota
};
// Function to assign colors based on the band
function getBandColor(band) {
const bandColors = {
"40m": "DarkBlue",
"20m": "Green",
"15m": "Orange",
"10m": "Red",
"2m": "Purple"
};
return bandColors[band] || "Gray"; // Default color if the band is missing
}
let container = DOM.element('div', { style: `width:${width}px;height:${width/1.6}px` });
yield container;
let map = L.map(container).setView([myLocation.lat, myLocation.lon], 7);
let osmLayer = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
// Custom icons
const myIcon = L.icon({
iconUrl: "/flag.png",
iconSize: [25, 25],
});
const sotaIcon = L.icon({
iconUrl: "/summit.png",
iconSize: [25, 25],
});
// Add marker for my station
L.marker([myLocation.lat, myLocation.lon], { icon: myIcon })
.bindPopup(`${myLocation.callsign}<br>SOTA Ref: ${myLocation.sota}`)
.addTo(map);
// Add QSO markers
qsosData.qsos.forEach(({ lat, lon, callsign, band, distance_km, sota_ref }) => {
const isSOTA = sota_ref !== "";
const markerIcon = isSOTA ? sotaIcon : null; // Use SOTA icon if reference exists
const color = getBandColor(band);
const marker = isSOTA
? L.marker([lat, lon], { icon: markerIcon }) // SOTA markers get an icon
: L.circleMarker([lat, lon], {
radius: 6,
color: color,
fillColor: color,
fillOpacity: 0.8
});
marker.bindPopup(
`Callsign: ${callsign}<br>Band: ${band}<br>Distance: ${distance_km} km` +
(isSOTA ? `<br>SOTA Ref: <a href="https://sotl.as/summits/${sota_ref}" target="_blank">${sota_ref}</a>` : "")
).addTo(map);
});
}
Creag Nan Gabhar
Completes all round
sota
Last week on the GM/ES activation day, Fraser was on this summit, and so I thought I’d go up and get a complete for me, and Fraser would go up a summit and get a complete for him! (Completing from a summit isn’t necessary but it is much more fun that way!)
Following on from my first summit this morning, I decided to wear some gaiters and take some hiking poles as I was sure there’d be more snow on this summit. Plus it was going to be another trackless ascent over heather and I didn’t want to get soaking boots on this cold day.
There are a couple of routes up, and, as always, given I was on a tight schedule I picked the shortest route. This starts from the side of the road and follows a stream up, and then you turn and face the summit and go straight up to the top. Seems to be a theme today…
I expected the route to take me around 50 minutes, and the first 20 minutes were easy going along the stream. Once I crossed over that it was then time to head straight up. The hill side was quite sheltered, and even though the air was colder here (certainly felt a lot colder when I got out the car) than Meall Alvie, the lack of wind meant I was pretty warm on my walk.
The route up is whatever you can make it. Sometimes following streams, sometimes over heather and sometimes in grassy patches. There was a surprising lack of any snow here. The ridge you can see in the photo is circa 750m and there’s no a single flake. Compared to Meall Alvie where there was snow around 500m, but I guess it’s in the trees and this gets full sun as a south facing slope. I did have a sit down at one point as it’s a bit of a slog, I suppose I had time extra too. Turning around, I was greeted with lovely views to the south of the higher hills all covered in snow.
I pushed on and made it to the top around the 50 minute mark. The top is quite a broad plateau with several cairns, and I relied on my watch to tell me which was the actual summit. Not that it really matters for SOTA given I have 25 vertical meters to play with. It was patchy blue sky but still great views all around. The only trouble was the icy wind that was strong now I was on the top.
I picked the largest cairn and put on all the jackets and hats I’d brought! Unfortunately, I only had my thin gloves and so my hands suffered the most. I had about 20 minutes before Fraser was due to arrive, so I wanted to do HF first and then be ready on 2m when he arrived. I setup again on 40m, and called CQ. The band was a little better for me this time. I did stop and then run around for a while to warm up, before going back to the radio for a few more QSOs.
With 11 on 40m, I packed up and setup the slim G for 2m. I’d just spotted on 2m, when Fraser did the same. So I jumped to his frequency and we had a wee chat. With that done, I was also done! I packed up and headed off back the way I came. Fraser was stuck on 3 QSOs, and was equally cold on his summit, so I dug out the HT with the RH-770 and gave him a call on the club callsign. He did manage two more afterwards. Once I was over the ridge and heading back down, I was out of the wind and my hands started to warm up…and burn up!
I was glad I took the poles, as they were useful for the steep descent, without them I suspect I’d have been rolling down the mountain. Back to the car, shovel down my super noodles, and then headed home. I made it back by 3pm, with enough time to get changed, make a cup of tea (cooled down with cold water!) and then head over to the school in time for pick up. 🚸
I think next time I come here, I’ll take the longer, but shallower gradient route…at least I hope it’s shallower! There’s only a month left of winter bonus, where the objective is to activate as many summits as possible - as long as they’re 2 or more pointers. So that means four more Fridays, and possibly a bonus day that I’ll take off. The tricky part is choosing which summits to do. I want to complete all the GM/ES summits, but should I also repeat some I’ve already done during winter bonus period as I can do multiple in one day. Some of it does depend on the weather, so I’ll see what’s next. 🏔️