Official X: same-minute satellite comparison, 31 October 2026
Version 1.0 - 2026-10-31

What this is
The scripts, matched cloud points and results behind the article "Are All NASA Photos of Earth CGI?
The Charge, Tested". Third-party frames are not included. They are listed below with their hashes.

The frames (Himawari tiles are stitched by get_him.py)
Himawari-9, Japan, NICT: https://himawari8.nict.go.jp/img/D531106/4d/550/YYYY/MM/DD/hhmmss_x_y.png
  2026-10-31 00:00, 03:00 and 06:00, and controls 2026-10-30 23:00 and 2026-10-30 00:00, all UTC.
Elektro-L No. 4, Russia, NTsOMZ: https://electro.ntsomz.ru/i/splash_l4/20261031-0300.jpg, -0600, -0900.
  File names run three hours ahead of UTC. That is inferred: the file 0300 was last modified at
  00:57 UTC, and the frames fit Himawari at 00:00. The site keeps about the last day only.
GOES-18, United States, NOAA:
  https://cdn.star.nesdis.noaa.gov/GOES18/ABI/FD/GEOCOLOR/20263040000_GOES18-ABI-FD-GEOCOLOR-5424x5424.jpg
hashes.txt gives the SHA-256 of each frame as downloaded, in the order Elektro, Himawari, GOES.

Test 1, sat_compare2.py
Each frame is mapped to one 0.2 degree latitude and longitude grid, assuming the ground is an ellipsoid
seen from 42,164 km over the equator, broad brightness is removed, and the cloud patterns are correlated.
Elektro's longitude, centre (within 6 pixels) and tilt (within 0.01 radian) were searched against the
same-minute Himawari frame. Result 0.858. With that fit held fixed: one hour apart 0.776, three hours
0.403, one day -0.011. GOES against Himawari: same minute 0.614, one hour 0.600, three hours 0.358, one day
-0.036. A sphere in place of the ellipsoid gave 0.868. The search makes 0.86 a best case. The search covered
about 1,600 combinations. Elektro's clock is inferred, and each scan takes minutes: same slot, not same instant.

Test 2, sat_plane2.py
Cloud patches, 27 pixels wide, are cut from the Himawari frame on a regular grid and searched for across the
WHOLE Elektro frame by normalised cross-correlation. A match counts only if it scores above 0.8 and beats the
next best place by 0.1, so no model chooses the matches. Land and coast can match as well as cloud. Pixels are
converted to pinhole image coordinates before the plane is fitted, because these instruments scan in angle.
That conversion uses the Earth's angular size. Two models then carry the points across, with the same robust
loss. Sphere: Elektro's longitude, centre, scale and roll, 5 numbers. Plane: a homography, 8 numbers.

                     matched   within 3 px: sphere / plane   median: sphere / plane   held-out median
  00:00 UTC              181               178 / 105            0.62 / 2.56 px         0.66 / 2.87 px
  03:00 UTC              191               189 / 103            0.58 / 2.72 px         0.60 / 2.83 px
  06:00 UTC              141               141 / 102            0.54 / 1.64 px         0.55 / 1.91 px
Fitted longitude: 165.85, 166.11, 166.04. Published: 165.8. One pixel is about 18 km at the disk centre. The
held-out half is drawn from the same matches, so it is not independent data. plane2-results.txt has every line.

sat_plane.py was the first version. Its search centred on the sphere's prediction, which favoured the sphere: it
reported a 12 pixel plane error that the model-free search does not support. A reviewer caught that. It is kept,
with plane-results.txt, so the change can be seen. Use sat_plane2.py.

Other runs, run2-results.txt
A separate run on other frames, a 0.25 degree grid and a small shift allowance gave EPIC against Himawari 0.575
(0.034 a day apart), Elektro against Himawari 0.651 (0.057), and FY-4B against Himawari infrared 0.409 (0.032),
FY-4B at night. Its settings are listed in that file.

Test 3, clones2.py
NASA's published cloud map, https://eoimages.gsfc.nasa.gov/images/imagerecords/57000/57747/cloud_combined_8192.tif,
searched between latitudes 25N and 25S for patches of 64 pixels that recur more than 120 pixels away.
clones-results.txt lists the best scores. Viewed by eye, the repeats at x,y 4736,1730 and 4581,1680 and at
2048,1986 and 2207,2015 are the same cloud structure, so those are the two shown. Not every high score is a
true repeat: the first line of the list, 7808,1474 with 7808,2620, is not. The search was a sample, every
128 pixels, not an inventory.

Limits
These are published agency products, not signals received by Official X. One day was tested. A theory that
all these agencies share one model of the sky is not excluded by a cloud match. The plane test excludes a flat
surface seen by two pinhole cameras, on these frames, not every geometry anyone could propose. One reviewer has read the method and its first version;
nobody outside Official X has rerun it.

Requirements: Python 3, numpy, scipy, pillow.
