Cropping the radar image...

The eastmost position of the US radar map is roughly 66.5843W.
The westmost position of the US radar map is roughly 127.5W.
the northmost position is 50.45N.
the southmost position is 21.583N.

The original image is 3400x1600.  We crop to 1600x1000.

So...

Conversion: 3400 pixels / (127.5 - 66.5843) = 55.815 pixels/degree
            1600 pixels / (50.45 - 21.583) = 55.427 pixels/degree

So let's assume 55.6 pixels/degree.

Our location, in pixels:
   locx = (127.5 - geoloc.long) * 55.6
   locy = (50.45 - geoloc.lat) * 55.6

Hence the crop we want should have top left of:

   xpos = locx - 800
   ypos = locy - 500

If xpos is greater than (3400 - 1600), set it to (3400 - 1600).
If xpos is less than 0, set it to 0.
If ypos is greater than (1600 - 1000), set it to (1600 - 1000).
If ypos is less than 0, set it to 0.

So...

  long rectTopLeft = ((127.5 - geoloc.long) * 55.6) - 800;
  if (rectTopLeft > (3400 - 1600)) {
    rectTopLeft = 3400 - 1600;
  }
  else if (rectTopLeft < 0) {
    rectTopLeft = 0;
  }
  long rectTopY = ((50.45 - geoloc.lat) * 55.6) - 500;
  if (rectTop > (1600 - 1000)) {
    rectTop = 1600 - 1000;
  }
  else if (rectTop < 0) {
    rectTop = 0;
  }
  
------------------------------------------------------------------------------
Getting weather from weather.gov...

First, get a JSON file with information about my location:

https://api.weather.gov/points/42.6641,-83.4202

From there I can get the links for my forecast in json["properties"]["forecast"]
and json["properties"]["forecastHourly"].

Looking at the forecast link (https://api.weather.gov/gridpoints/DTX/51,47/forecast),
we have an array of periods at json["properties"]["periods"] which contains
elements that look like:

{
       "number": 1,
       "name": "This Afternoon",
       "startTime": "2020-05-08T14:00:00-04:00",
       "endTime": "2020-05-08T18:00:00-04:00",
       "isDaytime": true,
       "temperature": 42,
       "temperatureUnit": "F",
       "temperatureTrend": null,
       "windSpeed": "14 mph",
       "windDirection": "N",
       "icon": "https://api.weather.gov/icons/land/day/snow,30?size=medium",
       "shortForecast": "Chance Rain And Snow Showers",
       "detailedForecast": "A chance of rain and snow showers. Partly sunny, with a high near 42. North wind around 14 mph, with gusts as high as 25 mph. Chance of precipitation is 30%."
}

Note that this URI has details not available in the others, and shows up as
the json["properties"]["forecastGridData"] elements in the original
document.  It's more machine-parseable too.

  https://api.weather.gov/gridpoints/DTX/51,47

Let's write a trivial program to grab data and do something with it... done,
poco and nlohmann:json are good tools for this.

So... for drawing the weather image, I need to know:
 - cloud level.
   For non-precipitation forecasts:
      0: SUNNY or CLEAR
      1: MOSTLY SUNNY or MOSTLY CLEAR
      2: PARTLY SUNNY or PARTLY CLEAR
      3: PARTLY CLOUDY
      4: MOSTLY CLOUDY
      5: CLOUDY
   For precipitation forecasts:
      2: ISOLATED
      3: SLIGHT CHANCE
      4: CHANCE
      5: LIKELY
      
What do I want...
  - temperature forecast
  - precipitation forecast


+-------------+--------------------------------------------------------------
|             | Tmp              Name
|             | Wind Spd/Dir     shortForecast
|    Image    | Humidity         detailedForecast
|             | Dew point
|             | Heat index
+-------------+--------------------------------------------------------------

LoTmp: QLabel, skyblue
HiTmp: QLabel, brightyellow
Name, etc: QLabel, white
WindSpd, WindDir: QLabel

