❌

Normal view

There are new articles available, click to refresh the page.
Before yesterdayMain stream

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 around and saw where I was. Please reference Tigger. Up the Tree. With Roo. for a literary example.)


Using that shorter path segment, the enrichment calls the Google Maps Elevation API for a 'path', asking for 200 samples to be returned, and winds up with JSON data formatted as shown.

{
Β  Β "results" :Β 
Β  Β [
Β  Β  Β  {
Β  Β  Β  Β  Β "elevation" : 123.6165237426758,
Β  Β  Β  Β  Β "location" :Β 
Β  Β  Β  Β  Β {
Β  Β  Β  Β  Β  Β  "lat" : 37.72489522009444,
Β  Β  Β  Β  Β  Β  "lng" : -122.4229361744053
Β  Β  Β  Β  Β },
Β  Β  Β  Β  Β "resolution" : 9.543951988220215
Β  Β  Β  },
Β  Β  Β  {
Β  Β  Β  Β  Β "elevation" : 123.4337463378906,
Β  Β  Β  Β  Β "location" :Β 
Β  Β  Β  Β  Β {
Β  Β  Β  Β  Β  Β  "lat" : 37.72489438728456,
Β  Β  Β  Β  Β  Β  "lng" : -122.4229250613661
Β  Β  Β  Β  Β },
Β  Β  Β  Β  Β "resolution" : 9.543951988220215
Β  Β  Β  },...

From there, I've written at length over the last few days about how to make an elevation chart like the one shown below.Β 






Only the data labeled as "elevation" is used in the chart even though there's more information to be had in the JSON response. At the moment, that data is simply being discarded. Other users of the enrichment might have a need for it. Other users might also have different uses for the data altogether than an elevation chart in base64 text encoded png format, (the sole output of the enrichment at this time.)Β 

So! The enrichment will be modified to simply store the JSON data. I'll make a second enrichment that will create the charts I require. The inputs to datasette-enrichments-gmap-elevation will be:

latitude1,longitude1,latitude2,longitude2,optional_sub_path_length_default_200_m

Where the first four arguments are the start and end coordinates of the entire path, and final, optional argument specifies how many meters long the path segment should be and defaults to 200 m.

The output will simply be the returned JSON data stored in a column titled 'elevation'.

I'll create a second enrichment datasette-enrichments-elevation-chart that consumes JSON elevation data and produces text encoded png charts.


Fun References:

KML/KMZ revelation inspired by the POTA from the above map.

UAP siting on the same trip




Scoping out the Elevation Map Enhancement

Β One of my goals this week is to add elevation profiles between QSO stations as a Datasette enrichment to our ham radio QSO Datasette utility. It's turning into a bit more of a convoluted project that I'd expected, so I'm taking the time to right down the first pass of the steps in the process. Here are the broad strokes:


  1. Complete a partial path Datasette plugin to find the coordinates of a small portion of the path between stations to use as the endpoint for an elevation profile path. This is already done.
  2. Use those coordinates as an input to a Datasette plugin that returns the elevation profile as json data. The first step of this has been prototyped. (It's looking like installing jq for Python on Windows is going to be a bit of an issue, so I'll find a different way to parse the returned json. I've done similar tasks with the ionosonde data and the rx station geocoding data.
  3. Produce charts as images for each row so that the query immediately presents a summary of all elevation data.


As for actual steps to be completed, here's what I have so far. More on this very, very soon.

Add a div, then using the DOM execute the JavaScript code to draw the graph ala this page.

Use jq to format the elevation data into JSON using the definitions here.



❌
❌