Turn Venus's map north up, so Maxwell Montes is drawn in the north where the IAU puts it
venus.jpg, from the Solar System Scope pack, is the Magellan radar map turned half round: south up and east to the left. Its brightest feature north or south of 50 degrees, Maxwell Montes, sat at 63.4 S, 8.9 W (blurred at sigma 3), with Lakshmi Planum east of it; the IAU Gazetteer puts Maxwell at 65.2 N, 3.3 E, at Lakshmi's eastern end. The IAU pole and W are right (Venus's sub-Earth longitude matched Horizons to the thousandth), and so is MAP_TO_BODY, which Earth, Mars, the Moon and Mercury were checked against; the file was not, and its surface was drawn turned 180 degrees about the prime meridian's axis. Turned back with PIL's ROTATE_180 and re-saved on the file's own quantisation tables (0.03 grey levels from the exact turn, 240 079 bytes), its brightest point is 63.7 N, 8.3 E with Lakshmi to the west, and the dev server serves that file. The textures README records the check, the MAP_TO_BODY comment adds Venus to the maps it names, and texture-catalog.spec.ts pins the checked file's SHA-256, since no image decoder runs in the unit suite (a triple-slash reference gives that one spec Node's types). Control: the pack's file put back fails "wraps Venus in the map turned north up". Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -19,7 +19,9 @@ const Z_AXIS = new THREE.Vector3(0, 0, 1);
|
|||||||
* Greenwich is in the middle of Earth's; on Mars's, Olympus Mons (226.2 E, which is -133.8) sits a
|
* Greenwich is in the middle of Earth's; on Mars's, Olympus Mons (226.2 E, which is -133.8) sits a
|
||||||
* little over a third of the width left of centre; on the Moon's, Mare Crisium (59 E) is right of
|
* little over a third of the width left of centre; on the Moon's, Mare Crisium (59 E) is right of
|
||||||
* centre and Mare Orientale (95 W) left of it; on Mercury's, the rayed crater Kuiper (31.5 W, 11 S)
|
* centre and Mare Orientale (95 W) left of it; on Mercury's, the rayed crater Kuiper (31.5 W, 11 S)
|
||||||
* is just left of centre and below the equator. A map labelled in west longitude, as most planets'
|
* is just left of centre and below the equator; on Venus's, Maxwell Montes (65.2 N, 3.3 E) is the
|
||||||
|
* brightest spot, high and just right of centre — Solar System Scope ships that map turned half
|
||||||
|
* round, south up, and it is kept turned back. A map labelled in west longitude, as most planets'
|
||||||
* are, is still drawn with east to the right, as any map of a sphere seen from outside is; only its
|
* are, is still drawn with east to the right, as any map of a sphere seen from outside is; only its
|
||||||
* numbers run the other way. So longitude 0 is +X and 90 E is -Z, and a quarter turn about X
|
* numbers run the other way. So longitude 0 is +X and 90 E is -Z, and a quarter turn about X
|
||||||
* carries that onto the IAU's body-fixed frame: pole +Z, prime meridian +X, 90 E +Y.
|
* carries that onto the IAU's body-fixed frame: pole +Z, prime meridian +X, 90 E +Y.
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
/// <reference types="node" />
|
||||||
|
// Node, for the one test that reads a map's bytes from disk.
|
||||||
|
import { createHash } from 'node:crypto';
|
||||||
|
import { readFileSync } from 'node:fs';
|
||||||
import * as THREE from 'three/webgpu';
|
import * as THREE from 'three/webgpu';
|
||||||
import { describe, expect, it } from 'vitest';
|
import { describe, expect, it } from 'vitest';
|
||||||
|
|
||||||
@@ -11,6 +15,16 @@ describe('bodyTexturePath', () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('wraps Venus in the map turned north up, the one checked for Maxwell Montes', () => {
|
||||||
|
// As the Solar System Scope pack ships it, venus.jpg is the Magellan map turned half round:
|
||||||
|
// Maxwell Montes, 65.2 N 3.3 E in the IAU Gazetteer, was its brightest point at 63 S 9 W. The
|
||||||
|
// file turned back puts it at 63.7 N 8.3 E; see assets/textures/README.md. No decoder runs
|
||||||
|
// here, so the check is pinned to those bytes.
|
||||||
|
expect(bodyTexturePath('venus')).toBe('assets/textures/bodies/venus.jpg');
|
||||||
|
const bytes = readFileSync(`${process.cwd()}/src/assets/textures/bodies/venus.jpg`);
|
||||||
|
expect(createHash('sha256').update(bytes).digest('hex')).toBe('4528b8e9a3cf880d80e8a5321a3001e8792bc18f266c06f3456a6bd8475e021d');
|
||||||
|
});
|
||||||
|
|
||||||
it('leaves the bodies with no map it could check to their derived surface', () => {
|
it('leaves the bodies with no map it could check to their derived surface', () => {
|
||||||
for (const id of ['miranda', 'ariel', 'umbriel', 'titania', 'oberon', 'hyperion', 'eris']) {
|
for (const id of ['miranda', 'ariel', 'umbriel', 'titania', 'oberon', 'hyperion', 'eris']) {
|
||||||
expect(bodyTexturePath(id)).toBeUndefined();
|
expect(bodyTexturePath(id)).toBeUndefined();
|
||||||
|
|||||||
@@ -12,6 +12,13 @@ prime meridian (W) then turns longitude 0 to where it belongs at any date.
|
|||||||
and the skybox come from the Solar System Scope texture pack, and `jupiter` from its 8k pack, via
|
and the skybox come from the Solar System Scope texture pack, and `jupiter` from its 8k pack, via
|
||||||
Wikimedia Commons. See each file's Commons page for the original credit line.
|
Wikimedia Commons. See each file's Commons page for the original credit line.
|
||||||
|
|
||||||
|
`venus.jpg` is kept turned 180 degrees from the pack's file, which is the Magellan radar map with
|
||||||
|
south up and east to the left: there Maxwell Montes (65.2 N, 3.3 E in the IAU Gazetteer), the
|
||||||
|
brightest feature north or south of 50 degrees, sat at 63 S, 9 W, with Lakshmi Planum east of it
|
||||||
|
instead of west. Turned back (PIL `ROTATE_180`, re-saved on the file's own quantisation tables, 0.03
|
||||||
|
grey levels from the exact turn), its brightest point is at 63.7 N, 8.3 E, with Lakshmi to the west.
|
||||||
|
`texture-catalog.spec.ts` pins the checked file's SHA-256.
|
||||||
|
|
||||||
`saturn_ring.png` is a 1 280 by 78 px strip. Its x axis runs straight out from Saturn: read off its
|
`saturn_ring.png` is a 1 280 by 78 px strip. Its x axis runs straight out from Saturn: read off its
|
||||||
alpha, the C ring's inner edge (74 490 km) is at px 91, the B ring's inner and outer edges (92 000
|
alpha, the C ring's inner edge (74 490 km) is at px 91, the B ring's inner and outer edges (92 000
|
||||||
and 117 580 km) at 404.5 and 860, the A ring's outer edge (136 775 km) at 1 204 and the F ring
|
and 117 580 km) at 404.5 and 860, the A ring's outer edge (136 775 km) at 1 204 and the F ring
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 235 KiB After Width: | Height: | Size: 234 KiB |
Reference in New Issue
Block a user