Skip to main content

Astrometry

Astrometry turns a list of star positions into a pixel-to-sky transformation (WCS) by calling C functions from the Astrometry.net library (https://astrometry.net).

Astrometry.net star index files ("series") are automatically downloaded when required.

This package is useful for solving plates from a Python script, comparing star extraction methods, or hosting a simple local version of Astrometry.net with minimal dependencies. See https://github.com/dam90/astrometry for a more complete self-hosting solution.

Unlike Astrometry.net, Astrometry does not include FITS parsing or image pre-processing algorithms. Stars must be provided as a list of pixel positions.

This library works on Linux and macOS but it requires WSL on Windows.

We are not the authors of the Astrometry.net library. You should cite works from https://astrometry.net/biblio.html if you use the Astrometry.net algorithm via this package.

Get started

python3 -m venv .venv
source .venv/bin/activate
pip install astrometry
import astrometry

with astrometry.Solver(
    astrometry.series_5200.index_files(
        cache_directory="astrometry_cache",
        scales={6},
    )
) as solver:

    stars = [
        [388.9140568247906, 656.5003281719216],
        [732.9210858972549, 473.66395545775106],
        [401.03459504299843, 253.788113189415],
        [312.6591868096163, 624.7527729425295],
        [694.6844564647456, 606.8371776658344],
        [741.7233477959561, 344.41284826261443],
        [867.3574610200455, 672.014835980283],
        [1063.546651153479, 593.7844603550848],
        [286.69070190952704, 422.170016812049],
        [401.12779619355155, 16.13543616977013],
        [205.12103484692776, 698.1847350789413],
        [202.88444768690894, 111.24830187635557],
        [339.1627757703069, 86.60739435924549],
    ]

    solution = solver.solve(
        stars=stars,
        size_hint=None,
        position_hint=None,
        solution_parameters=astrometry.SolutionParameters(),
    )

    if solution.has_match():
        print(f"{solution.best_match().center_ra_deg=}")
        print(f"{solution.best_match().center_dec_deg=}")
        print(f"{solution.best_match().scale_arcsec_per_pixel=}")

solve is thread-safe. It can be called any number of times from the same Solver object.

Examples

Use the solver without with

import astrometry

solver = astrometry.Solver(...)
solver.solve(...) # solve can be called multiple times
solver.close() # close the index files used by the solver

Provide size and position hints

import astrometry

with astrometry.Solver(...) as solver:
    solution = solver.solve(
        stars=...,
        size_hint=astrometry.SizeHint(
            lower_arcsec_per_pixel=1.0,
            upper_arcsec_per_pixel=2.0,
        ),
        position_hint=astrometry.PositionHint(
            ra_deg=65.7,
            dec_deg=36.2,
            radius_deg=1.0,
        ),
        solution_parameters=...
    )

Print progress information (download and solve)

import astrometry
import logging

logging.getLogger().setLevel(logging.INFO)

with astrometry.Solver(...) as solver:
    solution = solver.solve(...)

Print field stars metadata

Astrometry extracts metadata from the star index ("series"). See Choosing series for a description of the available data.

import astrometry

with astrometry.Solver(...) as solver:
    solution = solver.solve(...)

    if solution.has_match():
        for star in solution.best_match().stars:
            print(f"{star.ra_deg}º, {star.dec_deg}º:", star.metadata)

Calculate field stars pixel positions with astropy

import astrometry

with astrometry.Solver(...) as solver:
    solution = solver.solve(...)

    if solution.has_match():
        wcs = solution.best_match().astropy_wcs()
        pixels = wcs.all_world2pix(
            [[star.ra_deg, star.dec_deg] for star in solution.best_match().stars],
            0,
        )
        # pixels is a len(solution.best_match().stars) x 2 numpy array of float values

astropy.wcs.WCS provides many more functions to probe the transformation properties and convert from and to pixel coordinates. See https://docs.astropy.org/en/stable/api/astropy.wcs.WCS.html for details. Astropy (https://pypi.org/project/astropy/) must be installed to use this method.

Print series description and size (without downloading them)

import astrometry

print(astrometry.series_5200_heavy.description)
print(astrometry.series_5200_heavy.size_as_string({2, 3, 4}))

See Choosing Series for a list of available series.

Disable tune-up and distortion

import astrometry

with astrometry.Solver(...) as solver:
    solution = solver.solve(
        stars=...,
        size_hint=...,
        position_hint=...,
        solution_parameters=astrometry.SolutionParameters(
            sip_order=0,
            tune_up_logodds_threshold=None,
        ),
    )

Stop the solver early using the log-odds callback

Return after the first match

import astrometry

with astrometry.Solver(...) as solver:
    solution = solver.solve(
        stars=...,
        size_hint=...,
        position_hint=...,
        solution_parameters=astrometry.SolutionParameters(
            logodds_callback=lambda logodds_list: astrometry.Action.STOP,
        ),
    )

Return early if the best log-odds are larger than 100.0

import astrometry

with astrometry.Solver(...) as solver:
    solution = solver.solve(
        stars=...,
        size_hint=...,
        position_hint=...,
        solution_parameters=astrometry.SolutionParameters(
            logodds_callback=lambda logodds_list: (
                astrometry.Action.STOP
                if logodds_list[0] > 100.0
                else astrometry.Action.CONTINUE
            ),
        ),
    )

Return early if there are at least ten matches

import astrometry

with astrometry.Solver(...) as solver:
    solution = solver.solve(
        stars=...,
        size_hint=...,
        position_hint=...,
        solution_parameters=astrometry.SolutionParameters(
            logodds_callback=lambda logodds_list: (
                astrometry.Action.STOP
                if len(logodds_list) >= 10.0
                else astrometry.Action.CONTINUE
            ),
        ),
    )

Return early if the three best matches are similar

import astrometry

def logodds_callback(logodds_list: list[float]) -> astrometry.Action:
    if len(logodds_list) < 3:
        return astrometry.Action.CONTINUE
    if logodds_list[1] > logodds_list[0] - 10 and logodds_list[2] > logodds_list[0] - 10:
        return astrometry.Action.STOP
    return astrometry.Action.CONTINUE


with astrometry.Solver(...) as solver:
    solution = solver.solve(
        stars=...,
        size_hint=...,
        position_hint=...,
        solution_parameters=astrometry.SolutionParameters(
            logodds_callback=logodds_callback,
        ),
    )

Choosing series

This library downloads series from http://data.astrometry.net. A solver can be instantiated with multiple series and scales as follows:

import astrometry

with astrometry.Solver(
    astrometry.series_5200.index_files(
        cache_directory="astrometry_cache",
        scales={4, 5, 6},
    )
    + astrometry.series_4200.index_files(
        cache_directory="astrometry_cache",
        scales={6, 7, 12},
    )
) as solver:
    ...

Astrometry.net gives the following recommendations to choose a scale:

Each index file contains a large number of “skymarks” (landmarks for the sky) that allow our solver to identify your images. The skymarks contained in each index file have sizes (diameters) within a narrow range. You probably want to download index files whose quads are, say, 10% to 100% of the sizes of the images you want to solve.

For example, let’s say you have some 1-degree square images. You should grab index files that contain skymarks of size 0.1 to 1 degree, or 6 to 60 arcminutes. Referring to the table below, you should [try index files with scales 3 to 9]. You might find that the same number of fields solve, and faster, using just one or two of the index files in the middle of that range - in our example you might try [5, 6 and 7].

-- http://astrometry.net/doc/readme.html

Scale 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Skymark diameter (arcmin) [2.0, 2.8] [2.8, 4.0] [4.0, 5.6] [5.6, 8.0] [8, 11] [11, 16] [16, 22] [22, 30] [30, 42] [42, 60] [60, 85] [85, 120] [120, 170] [170, 240] [240, 340] [340, 480] [480, 680] [680, 1000] [1000, 1400] [1400, 2000]

The table below lists series sizes and properties (we copied the descriptions from http://data.astrometry.net). You can access a series' object with astrometry.series_{name} (for example astrometry.series_4200).

Name Total size Scales Description Metadata
4100 0.36 GB [7, 19] built from the Tycho-2 catalog, good for images wider than 1 degree, recommended MAG_BT: float
MAG_VT: float
MAG_HP: float
MAG: float
4200 33.78 GB [0, 19] built from the near-infared 2MASS survey, runs out of stars at the low end, most users will probably prefer 4100 or 5200 j_mag: float
5000 76.24 GB [0, 7] an older version from Gaia-DR2 but without Tycho-2 stars merged in, our belief is that series_5200 will work better than this one source_id: int
phot_g_mean_mag: float
phot_bp_mean_mag: float
phot_rp_mean_mag: float
parallax: float
parallax_error: float
pmra: float
pmra_error: float
pmdec: float
pmdec_error: float
ra: float
dec: float
ref_epoch: float
5200 36.14 GB [0, 6] LIGHT version built from Tycho-2 + Gaia-DR2, good for images narrower than 1 degree, combine with 4100-series for broader scale coverage, the LIGHT version contains smaller files with no additional Gaia-DR2 information tagged along, recommended -
5200_heavy 79.67 GB [0, 6] HEAVY version same as 5200, but with additional Gaia-DR2 information (magnitude in G, BP, RP, proper motions and parallaxes), handy if you want that extra Gaia information for matched stars ra: float
dec: float
mag: float
ref_cat: str
ref_id: int
pmra: float
pmdec: float
parallax: float
ra_ivar: float
dec_ivar: float
pmra_ivar: float
pmdec_ivar: float
parallax_ivar: float
phot_bp_mean_mag: float
phot_rp_mean_mag: float
6000 1.20 GB [4, 6] very specialized, uses GALEX Near-UV measurements, and only a narrow range of scales fuv_mag: float
nuv_mag: float
6100 1.58 GB [4, 6] very specialized, uses GALEX Far-UV measurements, and only a narrow range of scales fuv_mag: float
nuv_mag: float

The table below indicates the total file size for each scale (most series have multiple index files per scale).

Name 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
4100 - - - - - - - 165.00 MB 94.55 MB 49.77 MB 24.87 MB 10.21 MB 5.30 MB 2.73 MB 1.38 MB 740.16 kB 408.96 kB 247.68 kB 187.20 kB 144.00 kB
4200 14.22 GB 9.25 GB 5.06 GB 2.63 GB 1.31 GB 659.09 MB 328.25 MB 165.44 MB 81.84 MB 41.18 MB 20.52 MB 8.02 MB 4.17 MB 2.16 MB 1.10 MB 596.16 kB 339.84 kB 213.12 kB 164.16 kB 132.48 kB
5000 34.79 GB 20.19 GB 10.74 GB 5.44 GB 2.71 GB 1.36 GB 676.79 MB 340.73 MB - - - - - - - - - - - -
5200 17.20 GB 9.49 GB 4.86 GB 2.45 GB 1.22 GB 614.89 MB 307.72 MB - - - - - - - - - - - - -
5200_heavy 36.46 GB 21.20 GB 11.29 GB 5.72 GB 2.85 GB 1.43 GB 714.56 MB - - - - - - - - - - - - -
6000 - - - - 892.55 MB 457.66 MB 233.23 MB - - - - - - - - - - - - -
6100 - - - - 599.33 MB 384.09 MB 214.79 MB - - - - - - - - - - - - -

Documentation

Solver

class Solver:
    def __init__(self, index_files: list[pathlib.Path]): ...

    def solve(
        self,
        stars: typing.Iterable[SupportsFloatMapping],
        size_hint: typing.Optional[SizeHint],
        position_hint: typing.Optional[PositionHint],
        solution_parameters: SolutionParameters,
    ) -> Solution: ...

    def __enter__(self) -> Solver: ...

    def __exit__(
        self,
        exception_type: typing.Optional[typing.Type[BaseException]],
        value: typing.Optional[BaseException],
        traceback: typing.Optional[types.TracebackType],
    ) -> bool: ...

solve is thread-safe and can be called any number of times.

  • index_files: List of index files to use for solving. The list need not come from a Series object. Series subsets and combinations are possible as well.
  • star: iterator over a list of pixel coordinates for the input stars.
  • size_hint: Optional angular pixel size range (SizeHint). Significantly speeds up solve when provided. If size_hint is None, the range [0.1, 1000.0] is used. This default range can be changed by setting astrometry.DEFAULT_LOWER_ARCSEC_PER_PIXEL and astrometry.DEFAULT_UPPER_ARCSEC_PER_PIXEL to other values.
  • position_hint: Optional field center Ra/Dec coordinates and error radius (PositionHint). Significantly speeds up solve when provided. If position_hint is None, the entire sky is used (radius_deg = 180.0).
  • solution_parameters: Advanced solver parameters (SolutionParameters)

SizeHint

@dataclasses.dataclass
class SizeHint:
    lower_arcsec_per_pixel: float
    upper_arcsec_per_pixel: float

lower_arcsec_per_pixel and upper_arcsec_per_pixel must be larger than 0 and upper_arcsec_per_pixel must be smaller than or equal to upper_arcsec_per_pixel.

PositionHint

@dataclasses.dataclass
class PositionHint:
    ra_deg: float
    dec_deg: float
    radius_deg: float
  • ra_deg must be in the range [0.0, 360.0[.
  • dec_deg must be in the range [-90.0, 90.0].
  • radius must be larger than or equal to zero.

All values are in degrees and must use the same frame of reference as the index files. Astrometry.net index files use J2000 FK5 (https://docs.astropy.org/en/stable/api/astropy.coordinates.FK5.html). ICRS and FK5 differ by less than 0.1 arcsec (https://www.iers.org/IERS/EN/Science/ICRS/ICRS.html).

Action

class Action(enum.Enum):
    STOP = 0
    CONTINUE = 1

Parity

class Parity(enum.IntEnum):
    NORMAL = 0
    FLIP = 1
    BOTH = 2

SolutionParameters

@dataclasses.dataclass
class SolutionParameters:
    solve_id: typing.Optional[str] = None
    uniformize_index: bool = True
    deduplicate: bool = True
    sip_order: int = 3
    sip_inverse_order: int = 0
    distance_from_quad_bonus: bool = True
    positional_noise_pixels: float = 1.0
    distractor_ratio: float = 0.25
    code_tolerance_l2_distance: float = 0.01
    minimum_quad_size_pixels: typing.Optional[float] = None
    minimum_quad_size_fraction: float = 0.1
    maximum_quad_size_pixels: float = 0.0
    maximum_quads: int = 0
    maximum_matches: int = 0
    parity: Parity = Parity.BOTH
    tune_up_logodds_threshold: typing.Optional[float] = 14.0
    output_logodds_threshold: float = 21.0
    slices_generator: typing.Callable[[int], typing.Iterable[tuple[int, int]]] = astrometry.batches_generator(25)
    logodds_callback: typing.Callable[[list[float]], Action] = lambda _: Action.CONTINUE
  • solve_id: Optional plate identifier used in logging messages. If solve_id is None, it is automatically assigned a unique integer. The value can be retrieved from the Solution object (solution.solve_id).
  • uniformize_index: Uniformize field stars at the matched index scale before verifying a match.
  • deduplicate: De-duplicate field stars before verifying a match.
  • sip_order: Polynomial order of the Simple Imaging Polynomial distortion (see https://irsa.ipac.caltech.edu/data/SPITZER/docs/files/spitzer/shupeADASS.pdf). 0 disables SIP distortion. tune_up_logodds_threshold must be None if sip_order is 0.
  • sip_inverse_order: Polynomial order of the inversee Simple Polynomial distortion. Usually equal to sip_order. 0 means "equal to sip_order".
  • distance_from_quad_bonus: Assume that stars far from the matched quad will have larger positional variance.
  • positional_noise_pixels: Expected error on the positions of stars.
  • distractor_ratio: Fraction of distractors in the range ]0, 1].
  • code_tolerance_l2_distance: Code tolerance in 4D codespace L2 distance.
  • minimum_quad_size_pixels: Minimum size of field quads to try, None calculates the size automatically as minimum_quad_size_fraction * min(Δx, Δy), where Δx (resp. Δy) is the maximum x distance (resp. y distance) between stars in the field.
  • minimum_quad_size_fraction: Only used if minimum_quad_size_pixels is None (see above).
  • maximum_quad_size_pixels: Maximum size of field quads to try, 0.0 means no limit.
  • maximum_quads: Number of field quads to try, 0 means no limit.
  • maximum_matches: Number of quad matches to try, 0 means no limit.
  • parity: Parity.NORMAL does not flip the axes, Parity.FLIP does, and Parity.BOTH tries flipped and non-flipped axes (at the cost of doubling computations).
  • tune_up_logodds_threshold: Matches whose log-odds are larger than this value are tuned-up (SIP distortion estimation) and accepted if their post-tune-up log-odds are larger than output_logodds_threshold. None disables tune-up and distortion estimation (SIP). The default Astrometry.net value is math.log(1e6).
  • output_logodds_threshold: Matches whose log-odds are larger than this value are immediately accepted (added to the solution matches). The default Astrometry.net value is math.log(1e9).
  • slices_generator: User-provided function that takes a number of stars as parameter and returns an iterable (such as list) of two-elements tuples representing ranges. The first tuple item (start) is included while the second tuple item (end) is not. The returned ranges can have a variable size and/or overlap. The algorithm compares each range with the star catalogue sequentially. Small ranges significantly speed up the algorithm but increase the odds of missing matches. astrometry.batches_generator(n) generates non-overlapping batches of n stars.
  • logodds_callback: User-provided function that takes a list of matches log-odds as parameter and returns an astrometry.Action object. astrometry.Action.CONTINUE tells the solver to keep searching for matches whereas astrometry.Action.STOP tells the solver to return the current matches immediately. The log-odds list is sorted from highest to lowest value and should not be modified by the callback function.

Accepted matches are always tuned up, even if they hit tune_up_logodds_threshold and were already tuned-up. Since log-odds are compared with the thresholds before the tune-up, the final log-odds are often significantly larger than output_logodds_threshold. Set tune_up_logodds_threshold to a value larger than or equal to output_logodds_threshold to disable the first tune-up, and None to disable tune-up altogether. Tune-up logic is equivalent to the following Python snippet:

# This (pseudo-code) snippet assumes the following definitions:
# match: candidate match object
# log_odds: current match log-odds
# add_to_solution: appends the match to the solution list
# tune_up: tunes up a match object and returns the new match and the new log-odds
if tune_up_logodds_threshold is None:
    if log_odds >= output_logodds_threshold:
        add_to_solution(match)
else:
    if log_odds >= output_logodds_threshold:
        tuned_up_match, tuned_up_loggods = tune_up(match)
        add_to_solution(tuned_up_match)
    elif log_odds >= tune_up_logodds_threshold:
        tuned_up_match, tuned_up_loggods = tune_up(match)
        if tuned_up_loggods >= output_logodds_threshold:
            tuned_up_twice_match, tuned_up_twice_loggods = tune_up(tuned_up_match)
            add_to_solution(tuned_up_twice_match)

Astrometry.net gives the following description of the tune-up algorithm. See tweak2 in astrometry.net/solver/tweak2.c for the implementation.

Given an initial WCS solution, compute SIP polynomial distortions using an annealing-like strategy. That is, it finds matches between image and reference catalog by searching within a radius, and that radius is small near a region of confidence, and grows as you move away. That makes it possible to pick up more distant matches, but they are downweighted in the fit. The annealing process reduces the slope of the growth of the matching radius with respect to the distance from the region of confidence.

-- astrometry.net/include/astrometry/tweak2.h

Solution

@dataclasses.dataclass
class Solution:
    solve_id: str
    matches: list[Match]

    def has_match(self) -> bool: ...

    def best_match(self) -> Match: ...

    def to_json(self) -> str: ...

    @classmethod
    def from_json(cls, solution_as_json: str) -> Solution: ...

matches are sorted in descending log-odds order. best_match returns the first match in the list. to_json and from_json may be used to save and load solutions.

Match

@dataclasses.dataclass
class Match:
    logodds: float
    center_ra_deg: float
    center_dec_deg: float
    scale_arcsec_per_pixel: float
    index_path: pathlib.Path
    stars: tuple[Star, ...]
    quad_stars: tuple[Star, ...]
    wcs_fields: dict[str, tuple[typing.Any, str]]

    def astropy_wcs(self) -> astropy.wcs.WCS: ...
  • logodds: Log-odds (https://en.wikipedia.org/wiki/Logit) of the match.
  • center_ra_deg: Right ascension of the stars bounding box's center, in degrees and in the frame of reference of the index (J200 FK5 for Astrometry.net series).
  • center_dec_deg: Declination of the stars bounding box's center in degrees and in the frame of reference of the index (J200 FK5 for Astrometry.net series).
  • scale_arcsec_per_pixel: Pixel scale in arcsec per pixel.
  • index_path: File system path of the index file used for this match.
  • stars: List of visible index stars. This list is almost certainly going to differ from the input stars list.
  • quad_stars: The index stars subset (usually 4 but can be 3 or 5) used in the hash code search step (see https://arxiv.org/pdf/0910.2233.pdf, 2. Methods).
  • wcs_fields: WCS fields describing the transformation between pixel coordinates and world coordinates. This dictionary can be passed directly to astropy.wcs.WCS.

astropy_wcs generates an Astropy WCS object. Astropy (https://pypi.org/project/astropy/) must be installed to use this method. See Calculate field stars pixel positions with astropy for details.

Star

@dataclasses.dataclass
class Star:
    ra_deg: float
    dec_deg: float
    metadata: dict[str, typing.Any]

ra_deg and dec_deg are in degrees and use the same frame of reference as the index files. Astrometry.net index files use J2000 FK5 (https://docs.astropy.org/en/stable/api/astropy.coordinates.FK5.html). ICRS and FK5 differ by less than 0.1 arcsec (https://www.iers.org/IERS/EN/Science/ICRS/ICRS.html).

The contents of metadata depend on the data available in index files. See Series for details.

Series

@dataclasses.dataclass
class Series:
    name: str
    description: str
    scale_to_sizes: dict[int, tuple[int, ...]]
    url_pattern: str

    def size(self, scales: typing.Optional[set[int]] = None): ...

    def size_as_string(self, scales: typing.Optional[set[int]] = None): ...

    def index_files(
        self,
        cache_directory: typing.Union[bytes, str, os.PathLike],
        scales: typing.Optional[set[int]] = None,
    ) -> list[pathlib.Path]: ...
  • name defines the cache subdirectory name.
  • description is a copy of the text description in http://data.astrometry.net.
  • scale_to_sizes maps each available HEALPix resolution to index files sizes in bytes. The smaller the scale, the larger the number of HEALPix subdivisions.
  • url_pattern is the base pattern used to generate file download links.
  • size returns the cumulative file sizes for the given scales in bytes. If scales is None, all the scales available for the series are used.
  • size_as_string returns a human-readable string representation of size.
  • index_files returns index files paths for the given scales (or all available scales if scales is None). This function downloads files that are not already in the cache directory. cache_directory is created if it does not exist. Download automatically resumes for partially downloaded files.

Change the constants astrometry.CHUNK_SIZE, astrometry.DOWNLOAD_SUFFIX and astrometry.TIMEOUT to configure the downloader parameters.

batches_generator

def batches_generator(
    batch_size: int,
) -> typing.Callable[[int], typing.Iterable[tuple[int, int]]]:
    ...
  • batch_size sets the size of the generated batches.

batches_generator returns a slices generator compatible with SolutionParameters.slices_generator. The slices are non-overlapping and non-full slices are ignored. For instance, a batch size of 25 over 83 stars would generate the slices (0, 25), (25, 50), and (50, 75).

SupportsFloatMapping

class SupportsFloatMapping(typing.Protocol):
    def __getitem__(self, index: typing.SupportsIndex, /) -> typing.SupportsFloat:
        ...

Contribute

Clone the repository

Clone this repository and pull its submodule:

git clone --recursive https://github.com/neuromorphicsystems/astrometry.git
cd astrometry
cd astrometry.net
git reset --hard 04e97d5365525ac429dca69b344f9f4d9070b739
git apply ../astrometry.net.patch
cd ..

or

git clone https://github.com/neuromorphicsystems/astrometry.git
cd astrometry
git submodule update --recursive
cd astrometry.net
git reset --hard 04e97d5365525ac429dca69b344f9f4d9070b739
git apply ../astrometry.net.patch
cd ..

After building, reset the patch changes to keep the submodule in a clean state

git reset --hard 04e97d5365525ac429dca69b344f9f4d9070b739

Format and lint

clang-format -i astrometry_extension/astrometry_extension.c astrometry_extension/astrometry_extension_utilities.h
pip install '.[lint]'
isort .; black .; pyright .

Build a local version

pip install -e . # use 'CC="ccache clang" pip install -e .' to speed up incremental builds

Publish

  1. Bump the version number in setup.py.

  2. Create a new release on GitHub.

MSVC compatibility (work in progress)

  • fitsbin.c, kdtree_internal.c, kdtree_internal_fits.c, solver.c: replace Variable Length Arrays (VAL) with _alloca (type name[size] -> type* name = _alloca(size))
  • fitsbin.c, fitsioutils.c, fitstable.c: cast void* to char* to enable pointer arithmetic
  • anqfits.c, verify.c: #define debug(args...) -> #define debug(...)
  • qfits_time.c: remove #include <pwd.h>
  • log.h, keywords.h: remove __attribute__ directives
  • bl.c: remove redundant bl.inc and bl_nl.c includes
  • replace all POSIX calls (file IO, network, select...). This requires significant effort when targeting the entire Astrometry.net library. It might be less complicated with Astrometry, which uses only a subset of Astrometry.net.

Metadata

Release files for arcsecond-astrometry 4.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arcsecond-astrometry 4.3.0
File Size Uploaded Provenance Actions
arcsecond_astrometry-4.3.0.tar.gz 532.5 kB With provenance Details for arcsecond_astrometry-4.3.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for arcsecond-astrometry 4.3.0
File Actions
arcsecond_astrometry-4.3.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for arcsecond_astrometry-4.3.0-cp313-cp313-win_amd64.whl
arcsecond_astrometry-4.3.0-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details for arcsecond_astrometry-4.3.0-cp313-cp313-musllinux_1_2_x86_64.whl
arcsecond_astrometry-4.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for arcsecond_astrometry-4.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
arcsecond_astrometry-4.3.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for arcsecond_astrometry-4.3.0-cp313-cp313-macosx_11_0_arm64.whl
arcsecond_astrometry-4.3.0-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details for arcsecond_astrometry-4.3.0-cp313-cp313-macosx_10_13_x86_64.whl
arcsecond_astrometry-4.3.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for arcsecond_astrometry-4.3.0-cp312-cp312-win_amd64.whl
arcsecond_astrometry-4.3.0-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details for arcsecond_astrometry-4.3.0-cp312-cp312-musllinux_1_2_x86_64.whl
arcsecond_astrometry-4.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for arcsecond_astrometry-4.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
arcsecond_astrometry-4.3.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for arcsecond_astrometry-4.3.0-cp312-cp312-macosx_11_0_arm64.whl
arcsecond_astrometry-4.3.0-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details for arcsecond_astrometry-4.3.0-cp312-cp312-macosx_10_13_x86_64.whl
arcsecond_astrometry-4.3.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for arcsecond_astrometry-4.3.0-cp311-cp311-win_amd64.whl
arcsecond_astrometry-4.3.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details for arcsecond_astrometry-4.3.0-cp311-cp311-musllinux_1_2_x86_64.whl
arcsecond_astrometry-4.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for arcsecond_astrometry-4.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
arcsecond_astrometry-4.3.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for arcsecond_astrometry-4.3.0-cp311-cp311-macosx_11_0_arm64.whl
arcsecond_astrometry-4.3.0-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details for arcsecond_astrometry-4.3.0-cp311-cp311-macosx_10_9_x86_64.whl
arcsecond_astrometry-4.3.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for arcsecond_astrometry-4.3.0-cp310-cp310-win_amd64.whl
arcsecond_astrometry-4.3.0-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details for arcsecond_astrometry-4.3.0-cp310-cp310-musllinux_1_2_x86_64.whl
arcsecond_astrometry-4.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for arcsecond_astrometry-4.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
arcsecond_astrometry-4.3.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for arcsecond_astrometry-4.3.0-cp310-cp310-macosx_11_0_arm64.whl
arcsecond_astrometry-4.3.0-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details for arcsecond_astrometry-4.3.0-cp310-cp310-macosx_10_9_x86_64.whl
arcsecond_astrometry-4.3.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for arcsecond_astrometry-4.3.0-cp39-cp39-win_amd64.whl
arcsecond_astrometry-4.3.0-cp39-cp39-musllinux_1_2_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-64 Details for arcsecond_astrometry-4.3.0-cp39-cp39-musllinux_1_2_x86_64.whl
arcsecond_astrometry-4.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for arcsecond_astrometry-4.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
arcsecond_astrometry-4.3.0-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details for arcsecond_astrometry-4.3.0-cp39-cp39-macosx_11_0_arm64.whl
arcsecond_astrometry-4.3.0-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details for arcsecond_astrometry-4.3.0-cp39-cp39-macosx_10_9_x86_64.whl

Total release size: 28.0 MB

Release files / arcsecond_astrometry-4.3.0.tar.gz

Download URL arcsecond_astrometry-4.3.0.tar.gz
Size 532.5 kB
Tags Source
SHA-256 checksum
How to use checksums
29be5e6fe22a2951c1f37ce5bac12321a531a4b51be5c5398c4b4658fe76ad57
BLAKE2b-256 checksum
How to use checksums
542bbc1a2533f3dbabf0686656f3064eb9010c5a7dabc1efa550aa4980e58821
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp313-cp313-win_amd64.whl

Download URL arcsecond_astrometry-4.3.0-cp313-cp313-win_amd64.whl
Size 208.5 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
9851a8b493ee94a289cb0decd8c230f7b79465f46521975c9b9d827046bbb26b
BLAKE2b-256 checksum
How to use checksums
3aad2c1fefe9bb7e60128deaba7a9aa79d9f8fed930ca5290401dbd14c8f9a2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL arcsecond_astrometry-4.3.0-cp313-cp313-musllinux_1_2_x86_64.whl
Size 2.1 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
10fe83d4e6594d12eb02641d88b275816263f67e4d8c339e6639136c0c291eca
BLAKE2b-256 checksum
How to use checksums
cf42690f71c74b16c5cd3cd8ac070b3c681acf420f405a4715e214c33c9033d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl

Download URL arcsecond_astrometry-4.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Size 2.1 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6e40df85a26546cd44ea82eef2619592c0157451e61302f83b96e7d0c894c3d9
BLAKE2b-256 checksum
How to use checksums
ac410bd02fa6399273bd64a363515284abea834777a40cd37247653c9453560b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL arcsecond_astrometry-4.3.0-cp313-cp313-macosx_11_0_arm64.whl
Size 527.3 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
aecf6578edae0e61577933f3a6dbd830204d69f4fa205e523d39b0cede703318
BLAKE2b-256 checksum
How to use checksums
708f7336ba3276b9fc849fdba4d3442fd7a650e2242df4abebd8484a3d2c0735
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp313-cp313-macosx_10_13_x86_64.whl

Download URL arcsecond_astrometry-4.3.0-cp313-cp313-macosx_10_13_x86_64.whl
Size 617.6 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
fef214f06f8cd90a8f3381607ac5364f88d369e5f3a313fce22adbc7a04ccd27
BLAKE2b-256 checksum
How to use checksums
4cb0b9ad82431c8c7f44ab033396c5b2b94e06704bcc33c3f54f293f3fc34540
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp312-cp312-win_amd64.whl

Download URL arcsecond_astrometry-4.3.0-cp312-cp312-win_amd64.whl
Size 208.5 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
7c5d1a8e07b63401f2282bd11f062bcc948009adc54ebbc752891a0dbddf7359
BLAKE2b-256 checksum
How to use checksums
93b170f46fdc6d923cc66646a5ca977f5f1f618e212feb247384103954f495e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL arcsecond_astrometry-4.3.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 2.1 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
997c41550454c9132e1cff5daea97b758968bf48a0e4153c2e32eb1a9b95c234
BLAKE2b-256 checksum
How to use checksums
9897727894f1c2b8d164d34dd9e90030a589c4ce16f1c53248a1ac3a8d11831e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl

Download URL arcsecond_astrometry-4.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Size 2.1 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
599610699e710a31aa780d57d9074803550ec29128d751611274979559e0ad1e
BLAKE2b-256 checksum
How to use checksums
bff820d18534bb5e3e8187064c99ddaf0207bd2f461d3ed35708972150e904b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL arcsecond_astrometry-4.3.0-cp312-cp312-macosx_11_0_arm64.whl
Size 527.3 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6fff1567a9c3bc2ec57799a978d4ba8fb11c211fd1781bc2b242c624ac58d807
BLAKE2b-256 checksum
How to use checksums
3a6b167a6b31bd55ebcf23a53a95e99d217741a6d44f9e0c52afbe3e8f6f2ff7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp312-cp312-macosx_10_13_x86_64.whl

Download URL arcsecond_astrometry-4.3.0-cp312-cp312-macosx_10_13_x86_64.whl
Size 617.5 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
4a7bb94be638274a0508da81e7b659a1bc9b820a764e46ca3ff716a2c8f0d9b9
BLAKE2b-256 checksum
How to use checksums
55aa78738c7b291a32c196b9be9b8ebf8558da6c547bc447d24181f6cd7e4a58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp311-cp311-win_amd64.whl

Download URL arcsecond_astrometry-4.3.0-cp311-cp311-win_amd64.whl
Size 208.5 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
b9923ecfe5ce50ec21cf121a1a4f4b4463f0d0051e4248f15cc990d6ab0977a7
BLAKE2b-256 checksum
How to use checksums
a3cbb3fc7844dcd41313b760df2b95bf786e0ac72f84d1d1cf378f5899fa893e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL arcsecond_astrometry-4.3.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 2.1 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
793d078a52207ee5ecc7955990cf933546f10795e83caf220eaa25c13847d9ff
BLAKE2b-256 checksum
How to use checksums
06de6e5c24ec7ae98e8cd255ee687ccb94ab2d8fa4e58343a8990a0c73c4ab97
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl

Download URL arcsecond_astrometry-4.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Size 2.1 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
67b5f4fe9fc650f3880f39d1675a085af1a2d8a376f4b5b35c03f9515630b753
BLAKE2b-256 checksum
How to use checksums
64f9ab6a01496e2e1d98f2669d3ccfcfecfa50434047364ce58f5bd1a60fdaf6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL arcsecond_astrometry-4.3.0-cp311-cp311-macosx_11_0_arm64.whl
Size 527.3 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5fdc481ce58fe25ee4626910c2144ddb5eaa11dfb328d68881eff3aa579245b1
BLAKE2b-256 checksum
How to use checksums
7d77520326bed7e1400b31d65da64aa07b3bebbab2b3f3802ba96886b38bfe46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp311-cp311-macosx_10_9_x86_64.whl

Download URL arcsecond_astrometry-4.3.0-cp311-cp311-macosx_10_9_x86_64.whl
Size 615.6 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
dbf3d60ef8db6292e2189b0afff03e4aa3de29aee1d86a2d35cf3b71664cb934
BLAKE2b-256 checksum
How to use checksums
fc88233c09b15b1113ccbc468eb2b198c41ac5ba3479599719a292acaed49a11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp310-cp310-win_amd64.whl

Download URL arcsecond_astrometry-4.3.0-cp310-cp310-win_amd64.whl
Size 208.5 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
1677c8448b05e334910ef8a7a08f058803b7895199a8d625be0c9c4a4793f95f
BLAKE2b-256 checksum
How to use checksums
154bfb03baa58e65c2c529760f2a992a989672bc27825d6e400b21afa8a5f428
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL arcsecond_astrometry-4.3.0-cp310-cp310-musllinux_1_2_x86_64.whl
Size 2.0 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
b84632d835a8a3722a73eecca315c6eaa407a649e711093834dbe79afd202fa2
BLAKE2b-256 checksum
How to use checksums
84ea5702532f1fe012bbdb8dcc5058798efdf1355fc4eb02f66b95d47e2c5baa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl

Download URL arcsecond_astrometry-4.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Size 2.1 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
21222a5ab7d3ddcdc6796fdd965a275ea44d00993e73de8858965b418c96488e
BLAKE2b-256 checksum
How to use checksums
72d09ea9a4c0bf627beaaee2821e6b31f61c715d614372cf19038d65bc41df9c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL arcsecond_astrometry-4.3.0-cp310-cp310-macosx_11_0_arm64.whl
Size 527.3 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
883192c62b2356b2e61abbc6acc470da6762b5dc64f0d32c2a4ad9c88ec4fe89
BLAKE2b-256 checksum
How to use checksums
f8d9d54d5786255a60b7562e3aee61779de0ce9d45e87186f09ba61836e78404
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp310-cp310-macosx_10_9_x86_64.whl

Download URL arcsecond_astrometry-4.3.0-cp310-cp310-macosx_10_9_x86_64.whl
Size 615.6 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
0212fb4e2f2ff2ef351b3ffe107b333dc5cbf368f68ca3ecc48df70a2be56ad0
BLAKE2b-256 checksum
How to use checksums
9694653787e757e256bdddbfd3ce6af1a79f866bbf2dad014e077b7eff38553f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp39-cp39-win_amd64.whl

Download URL arcsecond_astrometry-4.3.0-cp39-cp39-win_amd64.whl
Size 208.5 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
61a9236fbcadfaf485186cd24f6618c4d633f8dc719490df80a287eb9dd94ea2
BLAKE2b-256 checksum
How to use checksums
38d05b0df377fc2d99eba6f4677e753c6453a507d5dc691668414ffdf0bb3913
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL arcsecond_astrometry-4.3.0-cp39-cp39-musllinux_1_2_x86_64.whl
Size 2.0 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
1116fe3bd4b7695123852bab1efacf31ec614b41c7487e290f422319ca98298a
BLAKE2b-256 checksum
How to use checksums
e29a79e0630fc1bba95d41a0105c77411cad34fac52517f6d15718ecf16fd1a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl

Download URL arcsecond_astrometry-4.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Size 2.1 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
66f1ff8bbe7c923fd3721785f141e419ac6b09d3e13d0b082194cb2eda0639df
BLAKE2b-256 checksum
How to use checksums
33503cdb7f6d5b002864ee1f9ec0e0596cc64bc1d60142ea313651a8da4344c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp39-cp39-macosx_11_0_arm64.whl

Download URL arcsecond_astrometry-4.3.0-cp39-cp39-macosx_11_0_arm64.whl
Size 527.3 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c55b4d8241e4d085c394916156fcc609bbd39ead00aa18c46a0fb606dd88853c
BLAKE2b-256 checksum
How to use checksums
6daad8d406eadaa7050289edaa40f9cbb23697746f74a76681f5d044be18d241
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / arcsecond_astrometry-4.3.0-cp39-cp39-macosx_10_9_x86_64.whl

Download URL arcsecond_astrometry-4.3.0-cp39-cp39-macosx_10_9_x86_64.whl
Size 615.6 kB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
5124d6711a42cbfce0eeb611fc91a5a5480d82e853bab2506f599054cea3b479
BLAKE2b-256 checksum
How to use checksums
1001ba9a66ef16691608d2c3d18b22ecfc3957944c095d3c00c7d805d4558ed7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Security for arcsecond-astrometry 4.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 26 files in this release have been uploaded with provenance metadata.

Select from 26 files

Attestation for arcsecond_astrometry-4.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

4.3.0 This release

26 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page