Magnetic Latitude GUI
Attribution

The Magnetic Latitude GUI was originally prototyped for a former manager and good friend, the late heliophysicist Dr. Jennifer Gannon.
The 10 May 2024 “super” solar storm is named in honor of Dr. Gannon.
Introduction
The purpose of the Magnetic Latitude GUI is to provide a simple, intuitive, web-based facility to determine the surface-level magnetic latitude corresponding to any latitude/longitude location.
The Magnetic Latitude GUI leverages the World Magnetic Model 2025 to determine the magnetic inclination and calculate the magnetic latitude from the magnetic inclination.

What is magnetic latitude?

In simplest terms, magnetic latitude can be thought of as a set of latitude parallels, analogous to geographic latitude parallels, where the North and South poles are defined by the magnetic North and South poles (the magnetic dipole axis) rather than the geographic North and South poles (the rotational axes).
More complexly, the magnetic latitude (Φ) at any location on the Earth is calculated from the magnetic inclination (I, also called the dip angle) at that location:
Φ = arctan(0.5 x tan(I))
Magnetic inclination can be calculated using a computational magnetic model such as the World Magnetic Model 2025 (WMM2025) or the International Geomagnetic Reference Field 14 (IGRF-14), both which are deemed valid for the 2025 to 2029 (inclusive) semi-decade.
Image Credit: Thomson, Alan W. P. 2016. Geomagnetism review 2015. British Geological Survey Internal Report, OR/16/030. https://earthwise.bgs.ac.uk/index.php?title=File:OR16030_geomagnetic.jpg. Accessed 06/17/2026.
What’s important about magnetic latitude?
- Auroral Visibility
- Magnetic latitude rather the geographic latitude defines the “equator-ward” extent of the Northern (or Southern) Lights
- Space weather exposure
- At high magnetic latitude, the magnetic field lines are more nearly vertical resulting in greater exposure to solar flare particulate radiation
- Navigation and geomagnetic mapping
- Compasses are magnetic instruments and sensitive to position on the geomagnetic surface rather than position on the geographic surface

Image Credit: Image by nikolaytaman90 from Pixabay (user_id: 18017684). https://pixabay.com/photos/aurora-borealis-northern-lights-5573566. Accessed 19 June 2026. Used under terms of the Pixabay Content License.
Technical Pieces and Parts
Technologies Leveraged
Amazon Web Services Lightsail VMs
Docker Containers
Docker Compose Stacks
OpenVPN Servers & Clients
NGINX Web Server
NGINX Reverse Proxy Server
PHP FastCGI Process Manager
World Magnetic Model 2025
Google Maps JavaScript APIS
GitHub
Coding Languages Used
C
PHP
JavaScript
HTML5
CSS3
Concept of Operations

OpenVPN Network

OpenVPN
- Software-based VPN (no VPN hardware required)
- Installable on multiple platforms
- MS Windows, macOS, Linux, Android, iOS (others ?)
- Supports peer-to-peer and client-server architecture
- Clients networked ONLY to server by default; networked to other clients if server platform is configured for IP forwarding
Eastlake Alchemy VPN
- OpenVPN Server
- AWS Lightsail VM
- Static OpenVPN IP: 10.128.28.1
- Subnet: 10.128.28.0/24
- Distributes pre-declared OpenVPN IPs to clients on connection
- OpenVPN Clients
- Clients can be bare platforms, VMs (on-platform or cloud), containers (on platform or cloud), WSL instance (fallback to platform)
- Receive OpenVPN IPs from server on connection
- MagLat Processing Node: 10.128.28.101
NGINX Reverse Proxy
NGINX Site Configuration: maglat.eastlakealchemy.com
- Dreamhost DNS: maglat.eastlakealchemy.com mapped to AWS VM (static public IP 44.241.233.21)
- AWS VM OpenVPN IP: 10.128.28.1
NGINX Reverse Proxy redirects incoming HTTP/HTTPS requests:
- MagLat Processing Node: 10.128.28.101 [OpenVPN IP]

Magnetic Latitude Processing Node(s)

Docker Compose Stack
Docker Best Practice
- Separation of Responsibilities:
- Each container in the stack serves a single purpose
OpenVPN Container
- Provides VPN connection from/to OpenVPN Server (AWS VM)
NGINX Server Container
- Serves static content, e.g., static image files
- Proxies dynamic connections to Model Server
Model Server Container
- Serves dynamic (JavaScript) web page
- Google Maps Location JavaScript API
- Google Maps Elevation JavaScript API
- JavaScript ‘click’ event handler → PHP request
- Processes PHP requests → model arguments
- Executes WMM2025 model
- Processes model output → webpage
Processing Node Model Server Container

The MagLat Executable
wmm_point (C): standard WMM2025 executable
- Interactive UI (polling)
- Latitude, longitude, altitude, and date
MagLat (C): extends wmm_point to support CLI
- Minimal modification approach
- Command line interface, positional arguments:
- Latitude, longitude, altitude (elevation), date
- stdout output:
- MagLat: <> | F: <> | H: <> | X: <> | Y: <> | Z:<> | Decl: <> | Incl: <>
- MagLat: Magnetic Latitude (decimal degrees)
- F: Total Mag Field (nT)
- H: Horizontal Mag Field (nT)
- X: Northward Mag Field (nT)
- Y: Eastward Mag Field (nT)
- Z: Downward Mag Field (nT)
- Decl: Declination (decimal degrees)
- Incl: Inclination (decimal degrees)
- MagLat: <> | F: <> | H: <> | X: <> | Y: <> | Z:<> | Decl: <> | Incl: <>
The Site: maglat.eastlakealchemy.com

Magnetic Latitude GUI Limitations
WMM2025 Blackout Zones
- Model fails to produce reliable magnetic field calculation at some lat/lon
- Magnetic Latitude cannot be determined
- Magnetic Latitude GUI error handling for such cases is currently rudimentary
Surface-Level Only
- Magnetic latitude calculation is altitude-dependent; surface-level value not appropriate for some applications