Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions tests/tools/curation/dedupeByProximity.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { describe, expect, it } from 'vitest';

import { dedupeByProximity, type ProximityPoint } from '../../../tools/curation/dedupeByProximity.js';
import type { Vec3 } from '../../../src/@types/math/Vec3.js';
import { dedupeByProximity, type ProximityPoint } from '../../../tools/curation/dedupeByProximity';
import type { Vec3 } from '../../../src/@types/math/Vec3';

describe('dedupeByProximity', () => {
it('drops a candidate inside a featured anchor radius', () => {
Expand Down
2 changes: 1 addition & 1 deletion tests/tools/curation/writeMetaSidecar.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { tmpdir } from 'node:os';
import { join } from 'node:path';
import { randomBytes } from 'node:crypto';

import { writeMetaSidecar, type MetaSidecarEntry } from '../../../tools/curation/writeMetaSidecar.js';
import { writeMetaSidecar, type MetaSidecarEntry } from '../../../tools/curation/writeMetaSidecar';

function tmpPath(): string {
return join(tmpdir(), `writeMetaSidecar-${randomBytes(6).toString('hex')}.json`);
Expand Down
2 changes: 1 addition & 1 deletion tests/tools/famous-curator/cropExtract.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
*/
import { describe, it, expect } from 'vitest';
import sharp from 'sharp';
import { rotatedExtract } from '../../../tools/famous-curator/plugin/cropExtract.js';
import { rotatedExtract } from '../../../tools/famous-curator/plugin/cropExtract';
import { mkdtempSync, writeFileSync } from 'node:fs';
import { tmpdir } from 'node:os';
import { join } from 'node:path';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import { mkdtempSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
import { tmpdir } from 'node:os';
import { join } from 'node:path';
import sharp from 'sharp';
import { handleProcess } from '../../../../tools/famous-curator/plugin/routes/process.js';
import { handleProcess } from '../../../../tools/famous-curator/plugin/routes/process';
import type { RecipeDisk } from '../../../../tools/famous-curator/plugin/recipe';

async function seedSession(prefix: string): Promise<{ tmpId: string; dir: string }> {
Expand Down
2 changes: 1 addition & 1 deletion tests/tools/famous-curator/routes/process.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import { existsSync, mkdirSync, mkdtempSync, writeFileSync, readFileSync } from
import { tmpdir } from 'node:os';
import { join } from 'node:path';
import sharp from 'sharp';
import { handleProcess } from '../../../../tools/famous-curator/plugin/routes/process.js';
import { handleProcess } from '../../../../tools/famous-curator/plugin/routes/process';

async function seedSession(): Promise<{ tmpId: string; dir: string }> {
// 128×128 PNG with a bright disc in the middle so alpha-pass output
Expand Down
60 changes: 30 additions & 30 deletions tools/catalog/buildAllBins.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,39 +34,39 @@ import { createInterface } from 'node:readline';
import { fileURLToPath } from 'node:url';
import type { SourceType } from '../../src/@types/data/SourceType';

import { parseSdssCsv } from '../parsers/sdssCsv.js';
import { parseTwoMrs, parseXscShapeCsv } from '../parsers/twoMrs.js';
import type { XscShapeMap } from '../parsers/twoMrs.js';
import { parseGladeLine, parseGlade2masxPgcLine, parseHyperLedaCsv } from '../parsers/glade.js';
import type { HyperLedaShapeMap } from '../parsers/glade.js';
import { parseMilliquas } from '../parsers/milliquas.js';
import type { MilliquasParseResult } from '../parsers/milliquas.js';
import type { ParsedRecord } from '../parsers/common.js';
import { crossMatch } from './crossMatch.js';
import { dropFamousMatches } from './dropFamousMatches.js';
import type { FamousSkyPosition } from './dropFamousMatches.js';
import { parseFamousSeed } from '../parsers/famousSeed.js';

import { encodeGalaxyCatalog } from '../../src/data/galaxyCatalogFormat.js';
import { raDecZToCartesian } from '../../src/utils/math/index.js';
import { raDecDistToCartesian } from '../../src/utils/math/raDecDistToCartesian.js';
import { fallbackOrientation } from '../../src/utils/random/fallbackOrientation.js';
import { catalogDistanceFor } from './catalogDistanceFor.js';
import { CUTOFF_MPC } from './localVolumeCutoff.js';
import type { Cf4CatalogIndex } from '../parsers/cosmicflows4.js';
import { loadCf4CatalogIndex } from '../parsers/cosmicflows4.js';
import { DEFAULT_GALAXY_DIAMETER_KPC } from '../../src/utils/math/galaxyDiameterKpc.js';
import { Source, SOURCE_REGISTRY } from '../../src/data/sources.js';
import type { GalaxyCatalog } from '../../src/@types/data/GalaxyCatalog.js';
import { tierTarget, tierFilenameForSource } from '../../src/data/tierTargets.js';
import type { Tier } from '../../src/@types/data/Tier.js';
import { subsampleByAbsMag } from './subsampleByAbsMag.js';
import { rawDataPath } from '../utils/io/rawDataRegistry.js';
import { parseSdssCsv } from '../parsers/sdssCsv';
import { parseTwoMrs, parseXscShapeCsv } from '../parsers/twoMrs';
import type { XscShapeMap } from '../parsers/twoMrs';
import { parseGladeLine, parseGlade2masxPgcLine, parseHyperLedaCsv } from '../parsers/glade';
import type { HyperLedaShapeMap } from '../parsers/glade';
import { parseMilliquas } from '../parsers/milliquas';
import type { MilliquasParseResult } from '../parsers/milliquas';
import type { ParsedRecord } from '../parsers/common';
import { crossMatch } from './crossMatch';
import { dropFamousMatches } from './dropFamousMatches';
import type { FamousSkyPosition } from './dropFamousMatches';
import { parseFamousSeed } from '../parsers/famousSeed';

import { encodeGalaxyCatalog } from '../../src/data/galaxyCatalogFormat';
import { raDecZToCartesian } from '../../src/utils/math/index';
import { raDecDistToCartesian } from '../../src/utils/math/raDecDistToCartesian';
import { fallbackOrientation } from '../../src/utils/random/fallbackOrientation';
import { catalogDistanceFor } from './catalogDistanceFor';
import { CUTOFF_MPC } from './localVolumeCutoff';
import type { Cf4CatalogIndex } from '../parsers/cosmicflows4';
import { loadCf4CatalogIndex } from '../parsers/cosmicflows4';
import { DEFAULT_GALAXY_DIAMETER_KPC } from '../../src/utils/math/galaxyDiameterKpc';
import { Source, SOURCE_REGISTRY } from '../../src/data/sources';
import type { GalaxyCatalog } from '../../src/@types/data/GalaxyCatalog';
import { tierTarget, tierFilenameForSource } from '../../src/data/tierTargets';
import type { Tier } from '../../src/@types/data/Tier';
import { subsampleByAbsMag } from './subsampleByAbsMag';
import { rawDataPath } from '../utils/io/rawDataRegistry';

// Re-export so `tests/crossMatch.test.ts` and any other consumer can keep
// using the documented `tools/buildAllBins` import path.
export { crossMatch } from './crossMatch.js';
export type { CrossMatchInputs } from './crossMatch.js';
export { crossMatch } from './crossMatch';
export type { CrossMatchInputs } from './crossMatch';

// ─── GalaxyCatalog assembly + write ──────────────────────────────────────────

Expand Down
2 changes: 1 addition & 1 deletion tools/catalog/crossMatch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
* GLADE itself uses to pre-merge its constituent catalogues.
*/

import type { ParsedRecord } from '../parsers/common.js';
import type { ParsedRecord } from '../parsers/common';

/**
* Position tolerance: 5 arcseconds expressed in degrees.
Expand Down
6 changes: 3 additions & 3 deletions tools/catalog/subsampleByAbsMag.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@
* non-positive z are dropped regardless of target.
*/

import { absoluteMagnitude } from '../../src/utils/math/absoluteMagnitude.js';
import { redshiftToDistanceMpc } from '../../src/utils/math/redshiftToDistanceMpc.js';
import type { ParsedRecord } from '../parsers/common.js';
import { absoluteMagnitude } from '../../src/utils/math/absoluteMagnitude';
import { redshiftToDistanceMpc } from '../../src/utils/math/redshiftToDistanceMpc';
import type { ParsedRecord } from '../parsers/common';

export function subsampleByAbsMag(records: ParsedRecord[], target: number): ParsedRecord[] {
const kept = subsampleIndicesByAbsMag(records, target);
Expand Down
26 changes: 13 additions & 13 deletions tools/clusters/buildClusters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,19 +37,19 @@ import { readFileSync, writeFileSync } from 'node:fs';
import { resolve } from 'node:path';
import { fileURLToPath } from 'node:url';

import { parseMcxc, type McxcRow } from '../parsers/parseMcxc.js';
import { parseMscc, type MsccRow } from '../parsers/parseMscc.js';
import { parseClusterSeed, type ClusterSeedEntry } from '../parsers/parseClusterSeed.js';
import { encodeClusterCatalog } from '../../src/data/clusterCatalogFormat.js';
import { rawDataPath } from '../utils/io/rawDataRegistry.js';
import { writeMetaSidecar } from '../curation/writeMetaSidecar.js';
import { dedupeByProximity } from '../curation/dedupeByProximity.js';
import { raDecDistToEqCart } from '../../src/utils/math/raDecDistToEqCart.js';
import { redshiftToDistanceMpc } from '../../src/utils/math/redshiftToDistanceMpc.js';
import { H0_KM_S_MPC } from '../../src/utils/math/constants.js';
import type { ClusterCatalog } from '../../src/@types/data/ClusterCatalog.js';
import type { ClusterCategoryByte } from '../../src/@types/data/ClusterCatalog.js';
import type { Vec3 } from '../../src/@types/math/Vec3.js';
import { parseMcxc, type McxcRow } from '../parsers/parseMcxc';
import { parseMscc, type MsccRow } from '../parsers/parseMscc';
import { parseClusterSeed, type ClusterSeedEntry } from '../parsers/parseClusterSeed';
import { encodeClusterCatalog } from '../../src/data/clusterCatalogFormat';
import { rawDataPath } from '../utils/io/rawDataRegistry';
import { writeMetaSidecar } from '../curation/writeMetaSidecar';
import { dedupeByProximity } from '../curation/dedupeByProximity';
import { raDecDistToEqCart } from '../../src/utils/math/raDecDistToEqCart';
import { redshiftToDistanceMpc } from '../../src/utils/math/redshiftToDistanceMpc';
import { H0_KM_S_MPC } from '../../src/utils/math/constants';
import type { ClusterCatalog } from '../../src/@types/data/ClusterCatalog';
import type { ClusterCategoryByte } from '../../src/@types/data/ClusterCatalog';
import type { Vec3 } from '../../src/@types/math/Vec3';

// ── Tunable threshold constants ───────────────────────────────────────────────
//
Expand Down
2 changes: 1 addition & 1 deletion tools/curation/dedupeByProximity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
* pair. Pure function; preserves input order of surviving candidates.
*/

import type { Vec3 } from '../../src/@types/math/Vec3.js';
import type { Vec3 } from '../../src/@types/math/Vec3';

export type ProximityPoint = { worldPos: Vec3 };

Expand Down
2 changes: 1 addition & 1 deletion tools/famous-curator/plugin/paths.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
*/
import { resolve } from 'node:path';

import { RAW_DATA } from '../../utils/io/rawDataRegistry.js';
import { RAW_DATA } from '../../utils/io/rawDataRegistry';

export function curatedDir(repoRoot: string): string {
return resolve(repoRoot, 'public/images/famous-curated');
Expand Down
18 changes: 9 additions & 9 deletions tools/famous-curator/plugin/routes/export.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,15 @@
import sharp from 'sharp';
import { existsSync, mkdirSync, rmSync, renameSync, writeFileSync } from 'node:fs';
import { resolve } from 'node:path';
import { curatedGalaxyDir, curatedTmpDir, overrideIndexPath } from '../paths.js';
import { sessionPath } from '../tmpSession.js';
import { serialiseRecipe, validateRecipeDisk, type Recipe, type RecipeDisk } from '../recipe.js';
import { upsertOverrideEntry, type OverrideIndex } from '../overrideIndex.js';
import { applyLuminanceAsAlpha } from '../../../utils/image/applyLuminanceAsAlpha.js';
import { willDeproject } from '../../../famous/deprojectDisk.js';
import { squareDeprojectCrop } from '../../../famous/squareDeprojectCrop.js';
import { deriveFamousCalibration } from '../../../famous/deriveFamousCalibration.js';
import { publishFamousRuntimeImages } from '../../../famous/publishFamousRuntimeImages.js';
import { curatedGalaxyDir, curatedTmpDir, overrideIndexPath } from '../paths';
import { sessionPath } from '../tmpSession';
import { serialiseRecipe, validateRecipeDisk, type Recipe, type RecipeDisk } from '../recipe';
import { upsertOverrideEntry, type OverrideIndex } from '../overrideIndex';
import { applyLuminanceAsAlpha } from '../../../utils/image/applyLuminanceAsAlpha';
import { willDeproject } from '../../../famous/deprojectDisk';
import { squareDeprojectCrop } from '../../../famous/squareDeprojectCrop';
import { deriveFamousCalibration } from '../../../famous/deriveFamousCalibration';
import { publishFamousRuntimeImages } from '../../../famous/publishFamousRuntimeImages';
import type { FamousCalibration } from '../../../../src/@types/loading/FamousCalibration';

const FULL_PX = 1024;
Expand Down
10 changes: 5 additions & 5 deletions tools/famous-curator/plugin/routes/galaxies.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@
*/
import { readFileSync, existsSync } from 'node:fs';
import { resolve } from 'node:path';
import { parseFamousSeed } from '../../../parsers/famousSeed.js';
import { RAW_DATA } from '../../../utils/io/rawDataRegistry.js';
import { loadOverrideIndex } from '../overrideIndex.js';
import { overrideIndexPath, recipePath } from '../paths.js';
import { parseRecipe } from '../recipe.js';
import { parseFamousSeed } from '../../../parsers/famousSeed';
import { RAW_DATA } from '../../../utils/io/rawDataRegistry';
import { loadOverrideIndex } from '../overrideIndex';
import { overrideIndexPath, recipePath } from '../paths';
import { parseRecipe } from '../recipe';

export type GalaxyListEntry = {
id: string;
Expand Down
14 changes: 7 additions & 7 deletions tools/famous-curator/plugin/routes/process.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@
import sharp from 'sharp';
import { writeFileSync } from 'node:fs';
import { resolve } from 'node:path';
import { sessionPath } from '../tmpSession.js';
import { runStarnet, type StarnetConfig } from '../starnet.js';
import { applyLuminanceAsAlpha } from '../../../utils/image/applyLuminanceAsAlpha.js';
import { rotatedExtract } from '../cropExtract.js';
import { deprojectDisk, willDeproject } from '../../../famous/deprojectDisk.js';
import { squareDeprojectCrop } from '../../../famous/squareDeprojectCrop.js';
import { validateRecipeDisk, type RecipeDisk } from '../recipe.js';
import { sessionPath } from '../tmpSession';
import { runStarnet, type StarnetConfig } from '../starnet';
import { applyLuminanceAsAlpha } from '../../../utils/image/applyLuminanceAsAlpha';
import { rotatedExtract } from '../cropExtract';
import { deprojectDisk, willDeproject } from '../../../famous/deprojectDisk';
import { squareDeprojectCrop } from '../../../famous/squareDeprojectCrop';
import { validateRecipeDisk, type RecipeDisk } from '../recipe';

const PREVIEW_PX = 512;

Expand Down
4 changes: 2 additions & 2 deletions tools/famous-curator/plugin/routes/processAlphaOnly.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
import sharp from 'sharp';
import { existsSync, writeFileSync } from 'node:fs';
import { resolve } from 'node:path';
import { sessionPath } from '../tmpSession.js';
import { applyLuminanceAsAlpha } from '../../../utils/image/applyLuminanceAsAlpha.js';
import { sessionPath } from '../tmpSession';
import { applyLuminanceAsAlpha } from '../../../utils/image/applyLuminanceAsAlpha';

const PREVIEW_PX = 512;

Expand Down
2 changes: 1 addition & 1 deletion tools/famous-curator/plugin/routes/resolve.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
* in; tests inject stubs. Only the `ResolvedMedia` shape is shared,
* and it crosses as a type-only import — no value-level coupling.
*/
import type { ResolvedMedia } from '../noirlabResolver.js';
import type { ResolvedMedia } from '../noirlabResolver';

export type ResolverFn = (html: string, pageUrl: string) => ResolvedMedia | null;
export type HtmlFetcher = (url: string) => Promise<string>;
Expand Down
26 changes: 13 additions & 13 deletions tools/famous/buildFamous.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,19 +23,19 @@ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
import { resolve } from 'node:path';
import { fileURLToPath } from 'node:url';

import { parseFamousSeed, type FamousEntry } from '../parsers/famousSeed.js';
import { encodeGalaxyCatalog } from '../../src/data/galaxyCatalogFormat.js';
import { Source } from '../../src/data/sources.js';
import { fallbackOrientation } from '../../src/utils/random/fallbackOrientation.js';
import type { GalaxyCatalog } from '../../src/@types/data/GalaxyCatalog.js';
import type { FamousMetaEntry } from '../../src/@types/loading/FamousMetaEntry.js';
import { rawDataPath } from '../utils/io/rawDataRegistry.js';
import { parseRecipe, type Recipe } from '../famous-curator/plugin/recipe.js';
import { curatedGalaxyDir } from '../famous-curator/plugin/paths.js';
import { deriveFamousCalibration } from './deriveFamousCalibration.js';
import { willDeproject } from './deprojectDisk.js';
import { squareDeprojectCrop } from './squareDeprojectCrop.js';
import { writeMetaSidecar } from '../curation/writeMetaSidecar.js';
import { parseFamousSeed, type FamousEntry } from '../parsers/famousSeed';
import { encodeGalaxyCatalog } from '../../src/data/galaxyCatalogFormat';
import { Source } from '../../src/data/sources';
import { fallbackOrientation } from '../../src/utils/random/fallbackOrientation';
import type { GalaxyCatalog } from '../../src/@types/data/GalaxyCatalog';
import type { FamousMetaEntry } from '../../src/@types/loading/FamousMetaEntry';
import { rawDataPath } from '../utils/io/rawDataRegistry';
import { parseRecipe, type Recipe } from '../famous-curator/plugin/recipe';
import { curatedGalaxyDir } from '../famous-curator/plugin/paths';
import { deriveFamousCalibration } from './deriveFamousCalibration';
import { willDeproject } from './deprojectDisk';
import { squareDeprojectCrop } from './squareDeprojectCrop';
import { writeMetaSidecar } from '../curation/writeMetaSidecar';

/**
* Convert a curated entry's (RA, Dec, distanceMpc) to Cartesian (x, y, z).
Expand Down
2 changes: 1 addition & 1 deletion tools/famous/copyHiResToPublic.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
import { existsSync, mkdirSync, readdirSync } from 'node:fs';
import { join, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';
import { copyIfChanged, CURATED_DIR, HIRES_RUNTIME_DIR } from './publishFamousRuntimeImages.js';
import { copyIfChanged, CURATED_DIR, HIRES_RUNTIME_DIR } from './publishFamousRuntimeImages';

type CopyHiResOptions = {
/** Source root. Defaults to the curated master dir relative to CWD. */
Expand Down
14 changes: 7 additions & 7 deletions tools/famous/expandFamousFromCatalogs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -86,18 +86,18 @@
import { readFileSync, writeFileSync, existsSync, renameSync } from 'node:fs';
import { resolve } from 'node:path';
import { fileURLToPath } from 'node:url';
import { rawDataPath } from '../utils/io/rawDataRegistry.js';
import { rawDataPath } from '../utils/io/rawDataRegistry';

import { parseFamousSeed, validateFamousEntry, type FamousEntry } from '../parsers/famousSeed.js';
import { parseFamousSeed, validateFamousEntry, type FamousEntry } from '../parsers/famousSeed';
import {
parseHyperLedaMeandata,
hyperLedaMeandataUrl,
type HyperLedaMeandataRow,
} from '../parsers/hyperledaMeandata.js';
import { parseWikipediaSummary, wikipediaSummaryUrl } from '../parsers/wikipediaSummary.js';
import { loadJsonCache, saveJsonCache } from '../utils/io/jsonCache.js';
import { parseFlags } from '../utils/cli/args.js';
import { delay } from '../utils/async/delay.js';
} from '../parsers/hyperledaMeandata';
import { parseWikipediaSummary, wikipediaSummaryUrl } from '../parsers/wikipediaSummary';
import { loadJsonCache, saveJsonCache } from '../utils/io/jsonCache';
import { parseFlags } from '../utils/cli/args';
import { delay } from '../utils/async/delay';

// ──────────────────────────────────────────────────────────────────────
// Constants
Expand Down
14 changes: 7 additions & 7 deletions tools/famous/fetchFamousImages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -105,23 +105,23 @@
import { copyFileSync, existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from 'node:fs';
import { resolve } from 'node:path';
import { fileURLToPath } from 'node:url';
import { loadCuratedOverrides, type CuratedOverrideIndex } from './famousCuratedOverrides.js';
import { rawDataPath } from '../utils/io/rawDataRegistry.js';
import { loadCuratedOverrides, type CuratedOverrideIndex } from './famousCuratedOverrides';
import { rawDataPath } from '../utils/io/rawDataRegistry';
import sharp from 'sharp';
import { parseFlags } from '../utils/cli/args.js';
import { loadJsonCache, saveJsonCache } from '../utils/io/jsonCache.js';
import { parseFamousSeed, type FamousEntry } from '../parsers/famousSeed.js';
import { parseFlags } from '../utils/cli/args';
import { loadJsonCache, saveJsonCache } from '../utils/io/jsonCache';
import { parseFamousSeed, type FamousEntry } from '../parsers/famousSeed';
import {
parseWikipediaSummary,
wikipediaSummaryUrl,
type WikipediaSummary,
} from '../parsers/wikipediaSummary.js';
} from '../parsers/wikipediaSummary';
import {
applyRadialFade,
applyTransparency,
sampleCornerColor,
type RGBA,
} from './famousImageProcessor.js';
} from './famousImageProcessor';

// ──────────────────────────────────────────────────────────────────────
// Constants — Wikipedia path
Expand Down
Loading