Skip to main content

Posts

Showing posts with the label kml

Things I Learned: Cesium Ion and CZML

 I had a little time to play with a new mapping app over the weekend! This one is from Cesium and in its native form uses a JSON derivative called CZML. CZML is similar to KML. Furthermore, while it won't animate kml for me (at least not yet), CZML looks like it will support timestamps and animation. So! Maybe there'll be a new plugin for the logging program this week. Also! The resulting maps are shareable ! And perhaps can be shown in an iframe

Things I'm Learning: Adding Text Encoded Images to Google Earth (Pro and Web)

 This project has been going on for a while, but remember, the point of the elevation profile project was to add the elevation profile between our ham radio—Project TouCans—and the receiving station at the other end of a QSO to the map of the QSO itself. This week, I finally got to start work on the maps themselves, and I've found a few things. First, an image added to a Placemark description without a  width="100%" tag will overflow the pane that Google Earth Web creates for the Placemark A user can scroll the chart horizontally, but theOh  information isn't all visible at once. Adding the width tag back in fixes the issue on Google Earth Web, but leaves Google Earth Pro with a very small chart I thought a good compromise between the two might be to house the image in its own div. For Google Earth Web we get but on Google Earth Pro we still get the tiny chart: It seems the only way to get this done will be to learn the new Google Earth kml 'Carousel' extensio...

Finalizing Thoughts on the Elevation API Datasette Enrichment for Ham Radio QSO Paths

 I've outlined the work on the ham radio QSO Google Maps Elevation API Datasette Enrichment  (try saying that 3 times fast) over the last several days.  What I haven't talked about much, but thought about pretty often is what the released elevation enrichment should do. Here goes. The Datasette enrichment will store the JSON data returned from the Elevation format in a database column named 'elevation'. Remember, the enrichment is taking two coordinate pairs that form a QSO like the brown line shown between Villa Nueva, NM and Idaho (KJ7DT's QTH). It then determines the endpoint of a line that only covers the first 200 meters of that path, shown as the blue line below: (Yes, 8 year-old Tawnse and I were sitting on the side of the 'cliff' on the other side of the Pecos River from the campground during that QSO. Yes, Tawnse does have a lower center of gravity than I do and led me up that path. Yes, I did have a heck of a time getting back down once I turned ...

Things I Learned: Text Encoded Images Work in Google Earth KML Placemark Description Tags

 The project to add elevation profiles to each ham radio QSO on a QSO map is moving along. I've started to prototype inserting elevation charts into the map—via kml—of elevation profiles per QSO today. I had a slight bit of consternation that the charts might not be visible at all after coming across a post on stackoverflow that indicated text encoded images cannot be used as icons in kml files for Google Earth. I am happy to report however, that text encoded images in description fields for kml Placemark tabs work great! A tag like: <Placemark> <name>kj7dt </name> .............. <description> <![CDATA[<div width="400px"<h1>kj7dt </h1>Date/Time GMT: <div><br></div>"2023-02-12T21:58:00"<div><br></div><div><img width="100%" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAH.............. .......FTkSuQmCC"></div></div>]]></descr...

Week Notes: Time Stamps Restored; Elevation Elusive

 Eeeeeep! It's been, well, 11 days in since my last week notes. Sigh.... Here's what's been going on. I spent the first half of that ime working on getting the time stamps back into the ham radio qso kml maps, and I did it ! While working on this, I discovered that I didn't quite know how to include jinja templates inside other jinja templates. I figured it out though. Meanwhile, I've been methodically trying things as far as adding elevation plots to the kml maps. Things are moving along slowly ... and!!! ChatGPT may have just told me how to do the whole thing??? Anyway... Also! Data (and therefore Datasette) is good !

Data, Debug, and Past Ham Radio POTA Activations

 It's kinda awesome to have data! Earlier today I was working on the elevation profile project I've been writing about throughout the week. I've moved the project up to the point where an enrichment provides the elevation at the transmit location of the QSO, (my end of the path.) Looking at the results, at first I thought I must have introduced a bug at some point. The first two QSO elevations were meters and 3 meters high. That seemed awfully close to sea level, especially considering that most of my POTAs are made from the sides of various mountains. Looking at the table row for the 3 meter QSO I inspected the date: March 14th of 2024. I checked my photos to see where the gang and I were on that day and found this So! We were at just about sea level, that being the sea just to the right-hand side of the picture. What about the two meter high QSO? At this point it occurred to me that I didn't need to look back at pictures to see where we'd been on the 23rd of Ma...

Paradigm Shift: Seaparating Data from Views aka Elevation Profiles aren't Ham Radio QSO Database Material

 I've been slowly but surely working through this week's ham radio QSO elevation profile project. The way I want to use the tool (Datasette) doesn't feel like a good fit for the tool. That's made things more difficult. In short, here's what I hope to achieve: Plot a partial QSO path for each contact from the transmitting station (me), about 10 wavelenghts or so out towards the receiving station, so about 200 meters or so in this case. This path should be on the kml map of the QSO This is done. Place a png picture of the elevation profile into the Datasette row for that QSO. This is what this post was about. Add this picture to the kml map as well. So! I think I was wrong! The point of this whole operation was to have elevation profiles directly available in kml animated maps. I wanted them to be automatically included with each QSO, but my ownw specification was that they should be in the map. Not the database! Basically, there's data, the dates, times, callsign...

Things I Learned: Including Jinja Templates

 Having learned how to make timestamps again, I'd wound up with quite a lot of lines of template that didn't really do anything too, too awe inspiring. In short, I needed a twelve line block of kml to display a single digit of a time or a date. I decided the spiffy thing to do would be to move this kml template into a file that I'd include from the base kml map jinja template. It was more difficult than I originally thought it would be. Turns out that simply adding the include line did not do the trick. I got back the error message: no loader for this environment specified A little bit of research led to a solution. Jinja template objects in Python needs to have an Environment that is properly setup if you plan to include other templates from inside a template. That led to this line tmpl = Template(f.read()) changing to this line tmpl = Environment(loader=FileSystemLoader("./plugins/templates")).from_string(f.read()) At which point the template was located. Then,...

Ham Radio KML QSO Animated Map Time Stamps Restored... Almost Completely

 This setting goals thing just might work.  The day after I set the goal to find a new time icon solution for the animated kml QSO maps a solution appeared. I was studying (again) the new Google Charts API , hoping it might be similar enough to the old visualization API to provide a solution—it was not—when I looked at the new  map chart , more for the fun of it than for any other reason, and there it was: the answer I'd been looking for. Mind you, the answer was not in fact the chart API itself. The answer came in the form of map marker icons. Allow me to give you a little background and/or catch you up. Google Earth Pro map animations are very cool. We use them to watch QSO frequency during POTA and SOTA activations, and have more than once used them to observe that our overseas QSO were in fact gray line QSOs. But, it's very difficult to see the tiny time indicator on the animation play controls. That's OK though because there's a way to fix the issue. The kml scre...

Chasing Quiet Ham Radio Audio, Battery Charging Processes, Fringe Physics: Week Notes Up to 4-8-ish

 Week notes are kinda cool. It's fun to see what happened the week before ,what was planned ahead, and then reflect on that. This week, sigh... Oh, the irony. Reviewing last weeks notes, I found an off-handed comment I made about working on improving audio performance by bringing all the audio wiring inside the rig. This, Did Not. Help. I did get to learn a lot about where the noise in the audio circuits is coming from, I did also invent a new patch that helped out with the Pico-W noise I was originally trying to eliminate. Reflection is pretty useful, actually :) It's not easy to see the charging light indicator on the Imuto supply when it's properly housed in its Progresso soup can... ahhh... battery pack enclosure! I worked out an audio process for ensuring the charging cables are indeed charging so I don't wake up with a non-functional radio. I spent a lot of time looking at and reading about the QMX! (I read about it at their site, on qrper.com , and on w6csn.b...

More Ham Radio Antenna Site Elevation Profiles and a Datasette Plugin

 As with most of my project, I'm probably having way too much fun with this elevation path thing! I got a new look at our usual Pantoll campground site this morning, and it's really, really cool!  First though, let me point you towards the code that enables my recent fascination with our the layout of the terrain at our POTA activations. I've worked the datasette plugin that returns the coordinate's of a portion of the path between two points code through it's first very simple test case. I do not know if it will install correctly in any installation of Datasette yet, but it install's in mine, and it plays well with the instance in the test case, so here's the repository . Note for new readers: Datasette is a Python tool from Simon Willison , described as: " Datasette is a tool for exploring and publishing data. It helps people take data of any shape, analyze and explore it, and publish it as an interactive website and accompanying API. " The gang ...

Video Clips in KML Ham Radio QSO Maps

 This post and the next will detail plans for ideas inspired by K4SWL, Thomas Witherspoon, of qrper.com . Thomas records all of his POTA activations, and then posts them on YouTube like the one below. Meanwhile, Google Earth Web has introduced(?) the idea of carousels (maybe just new to me) in their KML styles. A carousel allows multiple media containers, (videos, hthml, pictures, etc.), to be attached to a placemark. The result is a placemark that looks like the following Here's the idea. What if a POTA video could be automatically split up into per QSO snippets using ffmpeg  and then automatically added to kml QSO maps like the one below? In that case, not only would you see the information in the marker above, but you'd be able to listen to the fluttering signal as it bounced of the aurora on its way to New Mexico! Heck, the map could even include and elevation profile per QSO . I think the technology exists already. The keyer for the Pico-W runs on Linux on a chromebook...

KML and Datasette: Automated Elevation Profiles

Automating yesterday's post . Here are the steps to add elevation profile paths to any QSO map: Duplicate the datasette-haversine-point-to-path repository, renaming it datasette-gis-partial-path This should expose a method for lat and a separate method for lng The inputs should be the beginning and end of the path and the number of meters the elevation path should extend The package will use haversine. It will also repackage a few of the earthmid methods Given the inputs, calculate the entire QSO path length using the haversine method. Then, divide the total distance by the input partial distance to get the number of 'partial' length segments exist in the the entire path. Call partial_path_lng and partial_path_lat to get the coordinates of the end of the first segment. Add a new linestring to the kml template. The segment starts at the transmitting station and ends at the coordinates returned in step 3 above. Label the new segment with the receive station's callsign an...

Ham Radio to Learn KML: Elevation maps

 I started out wondering how to attach videos to kml maps and wound up working on elevation profiles. There's always something new to learn on this project. It's pretty cool! There's something I've often wondered about with respect to QRP on twenty meters with low antennas: how much help is the rig getting from the slope of the hillsides I transmit from? Using Google Earth elevation profiles, It looks like I'll be able to get quantitative answers! The Goal Map the elevation profile of the terrain Project TouCans is situated on in the direction of the transmit path to the other station in a give QSO (radio contact.) The idea is to wind up with something like this. The Steps to Get it Done (First Prototype) Issue: The elevation profile from station to station tends to be very long. I'd like to only look at the profile over a few twenty meter wavelenghts. I don't see any zoom controls in Google Earth for the elevation pofile, so I'll plot a shorter line on...

Learning KML camera views with Ham Radio and Project TouCans

 This is so cool! I had a discussion a few nights back about what time of day Project TouCans had been spotted in New Zealand on 20 meters—the few times that its signal had reached out that far. We have a Datasette <add link> database of al the rigs QSOs and RBN spots, so it was simple enough to look up the answer. A few minutes after I started, I had a Google Earth Pro map of—kml file—of all the spots. Using the 'Show Sunlight' feature of app, I quickly realized that all of the spots had been at or near grey line. Here's the thing though, I wanted to animate how the sun's position on the horizon changed with each QSO, but... Every time I clicked on a new QSO, Google Earth Pro 'helpfully' moved the maps view camera to center the rather large QSO path on the map from space. Not. Helpful. <Add gif here> And this is where the kml concept of camera saved the day! I was able to add a camera tag to the kml file that pointed the map's camera at the ex...

New spot and log mapper features: Transparent RBN and Color Coded Signal Strength

It was difficult to tell the paths from KD0FNR's 20 meter Rockmite to Reverse Beaccon Network spotting stations, and actual QSOs. I started by labeling the paths, and then took a final step to make the spotting paths transparent and immediately evident. The first new set of features includes adding descriptive labels to each path including the callsign of the receiving station as well as the time and date the call was received. The labels appear when the path is clicked. If you'd like to try any of these features out, you can load the kml map at  https://drive.google.com/file/d/1dNkpzdjHaQqMRrulhPYHprZb9OJHbSup/view?usp=sharing into Google Earth on the web. I also wanted a way to determine the relative strength of signals at a glance. I developed a color coding scheme for the paths based on ROYGBIV with brown added in a 0 for 'unknown'. The color coding is  Color S value Brown 1 or uknown Red 2 Orange 3 Yellow 4 Green 5 Blue 6 Indigo 7 Vi...

Radio Wave Optics Works! (POTA of Organ Mountains-Desert Peaks National Monument)

 In electronics engineering classes at both Ohio State and Texas A&M I did homework problem after  homework problem working out radio wave propagation. One of the fundamental points was that radio waves are just another kind of light, and therefore behave like light. Radio waves however are not like visible light in one major way, their wavelenghth. The Rockmite operates on the 20 meter ham radio band. That means that the radio waves emitted  by the little ham radio have a wavelength of (about) 20 meters. Meanwhile, visible green light (as an example) has a wavelength of about 510 nanometers (that's 510 billionths of a meter.) This rather huge difference in wavelengths affects how the two different kinds of 'light' interact with their worlds and —for me —produces rather dissapointing results. While we can use the same field equations for both green light and radio waves, in a lot of cases radio waves do not (apparently) behave like the green light we're used to. For...