Skip to main content

Posts

Showing posts with the label cesium

Adding Elevation Control to QSO Maps with ChatGPT and Cesium

When making our QSO skip maps one of the issues we encounter is that the lines from our station to the F2 layer don't always start right at the ground. This seems to be an artifact of CZML and the fact that the Earth is not a sphere, but rather an ellipsoid, and even then, there are all those hills and mountains. The initial QSOs can wind mapped as up coming from underground: or, they can wind up starting from above the surface of the Earth In any event, it's been necessary with each map to adjust the elevation height of our station. I've yet to find a parameter to set in a czml that makes the starting point always be on the ground. "clampToGround" works for polylines that are always on the ground, but not polylines whose next point has an altitude greater than zero as the ground station to F2 layer polylines do. I added a feature into the JavaScript mapping application this week that allows me to adjust the height of all of the QSO's starting points at...

Turns out the F2 is really high: Finally! QSO Specific F2 Visualization

 OK, so this is just kinda cool! Suppose you're operating near mountains and are curious if your QSOs are hopping over the mountains, or if they're knife edge diffracting after smacking right into the mountain. You'll need to know how high the F2 layer was between your station and the receiving station and you'll need to be able to visulaize the path with respect to the mountain. It's taken a while, but we have that now!  Thanks to the GloTEC data curtesy of the NOAA, we know the F2 heights all over the world at the time of each QSO. We can also map our QSOs on a Cesium map with toplogy. This allows us to start with maps like this: where I wondered on the day of the QSO if TouCans' signal would clear the high way embankment, and found out that yes, yes it did. Check out the interactive map below. It has all the QSOs loaded with their actual F2 skip heights.

Today I Learned: Pattern for Specifying the CZML Map to Load in an iframe URL

 I learned a way to make my POTA activation blogs a bit easier to create today.  When to Use the Pattern When you'd like to use the same Sandcastle to open multiple different czml files without having to edit Sandcastle code every time. More generally, the pattern can be used to pass any number of URL encoded parameters to your Sandcastle Javascript via your Sandcastle's web address. What the Pattern Enables The user can specify a czml file URL like this https://sandcastle.cesium.com/standalone.html?mapurl=https://raw.githubusercontent.com/hcarter333/rm-rbn-history/refs/heads/main/maps/2024_11_18_Civic_Center_Juan_Bautista.czml#c=dV... Where the #c is the usual 64 bit encoded contents of your Sandcastle from the share link. Your Sandcastle will need to include this  code  through line 15. At that point, you'll have the address of your map in the variable mapurl2 and can do whatever you like with it. In the example above, the czml file pointed to is simply loaded into...

ChatGPT prototyping large html img downloads

 Last week, I asked ChatGPT to create header maps per QSO from a CZML map of my POTA outing. It dumped out code that I had to fuss a little bit with, but that did the job admirably. The output is text-encode png images in the console of the Cesium Sandcastle window. I would then download those images by copying them into an html file, opening the html file in a browser, and downloading each of the images individually. That was cool, until... Last night, I made 51 QSOs at US-4571 in San Francisco. That's a lot of files to download individually, so I asked ChatGPT: Please write a JavaScript, do not use React, that can save all the images from web page locally. It responded with code that downloaded the first 10 images. I asked it for a fix That only downloaded the first ten. Please modify the code so that it downloads all the imags and uses .png as the default extension. and it produced a modified version of the code that handily downloaded all 50. See the d...

ChatGPT Prototyping of Ham Radio Mapping Applications

 I used ChatGPT to get a quick and dirty protoype for an application that would make a map of each individual QSO from a given CZML map I had already created. All in all, it took ChatGPT and I about 20 minutes to come up with a prototype of an application that takes one of my CZML POTA maps, walks through it QSO by QSO, creates a label on the map with embedded QSO information and then dumps out a text encoded PNG image of the QSO on an OpenStreets map. =======================draft notes, skip to next equals line till polished============== Here's my first question to ChatGPT: Can I write Javascript that positions and frames a Cesium Ion map based on data read in through a czml file? I quickly followed that up with  Please write a method to zoom to any polyline defined in the czml file. Zoom to each polyline, wait three seconds, and then zoom to the next polyline in the order they are defined in the file. Next, I asked for a single line at a time: Please modify the method...