Satellite keplerian data CRC checker and format converter
Vérificateur de CRC et convertisseur de format pour éléments képlériens de satellites
satcrc reads satellite keplerian orbital element files, verifies their
integrity checksum, and optionally converts between the two standard formats
used in the amateur satellite community:
- NASA Two-Line Element (TLE) — compact two-line format produced by NORAD/NASA/Space-Track, used by most tracking software.
- AMSAT format — verbose keyword=value format historically distributed by AMSAT (Amateur Satellite Corporation) bulletins via packet radio.
The NASA TLE checksum is computed modulo 10: digits contribute their face
value, - contributes 1, + and letters contribute 0; the last character
of each line is the check digit.
The AMSAT checksum is a simple cumulative sum of the same character values across all lines of a satellite record.
Three independent executables are provided. Each exists in a French (f)
and English (s) variant controlled at compile time by -DFRANCAIS.
| Linux (EN) | Linux (FR) | Windows (EN) | Description |
|---|---|---|---|
satcrcs |
satcrcf |
satcrcs.exe / satcrcf.exe |
Standalone checker + converter |
satconverter |
satconvertisseur |
satconverter.exe / satconvertisseur.exe |
Format converter |
satconverts |
satconvertf |
satconverts.exe / satconvertf.exe |
Multi-module converter |
satcrcs / satcrcf (source: satcrcs.c / satcrcf.c)
Monolithic program. Reads a NASA TLE file or an AMSAT file, validates the
checksum of every satellite record, reports errors, and can write a file
containing only the valid records or a converted file.
satconverter / satconvertisseur (source: satconvertisseur.c)
Same functionality, single bilingual source, language selected at compile
time.
satconverts / satconvertf (source: satconv.c + nasacrcs_utf8.c
amsacrcs.c+crc10.c)
Multi-module version; separates the entry point from the format-specific reading modules. Handles UTF-8 filenames on Linux.
- Linux: GCC (any recent version)
- Windows cross-compilation:
gcc-mingw-w64-x86-64sudo apt-get install gcc-mingw-w64-x86-64
make # compile all versions (French + English)
make en # English versions only: satcrcs satconverter satconverts
make fr # French versions only: satcrcf satconvertisseur satconvertf
make clean # remove compiled binaries
make help # list all targetsCross-compile for Windows from Linux:
make -f Makefile.windows # all .exe
make -f Makefile.windows en # English .exe only
make -f Makefile.windows fr # French .exe only
make -f Makefile.windows clean # remove .exesatcrcs -option <input_file[.txt]> [output_file]
Options:
-n Read NASA Two-Line Element format
-a Read AMSAT format
-c Convert NASA TLE format to AMSAT format (output_file required)
Examples:
# Verify CRC of a NASA TLE file
satcrcs -n data/AO-07.TXT
# Verify CRC of an AMSAT format file
satcrcs -a data/AO-07-amsat.txt
# Extract valid TLE records into a new file
satcrcs -n data/keps.txt valid_keps.txt
# Convert a NASA TLE file to AMSAT format
satcrcs -c data/AO-07.TXT AO-07-amsat.txtTypical output (NASA TLE):
SATCRCS 1.29 Copyright (c) 1991-2026 AMSAT France & Bernard Pidoux
Performs satellites keplerian data checking and format conversion.
Nasa 2 lines format.
Reading file: 'data/AO-07.TXT'
1 AO-07 CRC ok
Keplerian data of 1 satellites are error free.
| File | Format | Description |
|---|---|---|
data/AO-07.TXT |
NASA TLE | AO-07 (AMSAT-OSCAR 7, launched 1974) |
data/AO-07-amsat.txt |
AMSAT | AO-07 in AMSAT verbose format |
data/2LINE-26056AM.TXT |
NASA TLE | Sample TLE file, epoch day 26056 |
data/keps.txt |
NASA TLE | Multi-satellite keplerian sample |
data/geo.txt |
NASA TLE | Geostationary satellites sample |
satcrc lit des fichiers d'éléments orbitaux képlériens de satellites,
vérifie leur somme de contrôle (CRC) et convertit optionnellement entre
les deux formats standards utilisés dans la communauté des satellites amateurs :
- Format 2 lignes NASA (TLE) — format compact deux lignes produit par NORAD/NASA/Space-Track, utilisé par la plupart des logiciels de pointage.
- Format AMSAT — format verbeux mot-clé=valeur diffusé historiquement par l'AMSAT via les bulletins radio paquets.
Le CRC NASA TLE est calculé modulo 10 : les chiffres valent leur valeur
nominale, - vaut 1, + et les lettres valent 0 ; le dernier caractère
de chaque ligne est le chiffre de contrôle.
La somme de contrôle AMSAT est la somme cumulative des mêmes valeurs de caractères sur toutes les lignes d'un enregistrement satellite.
make # compile toutes les versions (français + anglais)
make fr # versions françaises : satcrcf satconvertisseur satconvertf
make en # versions anglaises : satcrcs satconverter satconverts
make clean # supprime les exécutables
make help # liste toutes les ciblesCross-compilation pour Windows depuis Linux :
make -f Makefile.windowssatcrcf -option <fichier_entrée[.txt]> [fichier_sortie]
Options :
-n Lire le format 2 lignes NASA
-a Lire le format AMSAT
-c Convertir du format NASA TLE vers le format AMSAT (fichier_sortie obligatoire)
Exemples :
# Vérifier le CRC d'un fichier NASA TLE
satcrcf -n data/AO-07.TXT
# Vérifier le CRC d'un fichier format AMSAT
satcrcf -a data/AO-07-amsat.txt
# Extraire les enregistrements valides dans un nouveau fichier
satcrcf -n data/keps.txt keps_valides.txt
# Convertir un fichier NASA TLE au format AMSAT
satcrcf -c data/AO-07.TXT AO-07-amsat.txt| Fichier | Description |
|---|---|
satcrcs.c |
Programme principal anglais (monolithique) |
satcrcf.c |
Programme principal français (monolithique) |
satconvertisseur.c |
Convertisseur de format (bilingue via -DFRANCAIS) |
satconv.c |
Point d'entrée version multi-modules |
| Fichier | Description |
|---|---|
nasacrcs_utf8.c |
Lecture et vérification format NASA TLE (UTF-8, Linux) |
nasacrcs.c |
Lecture format NASA TLE (version originale) |
nasacrcs_nouv.c |
Lecture format NASA TLE (version révisée) |
amsacrcs.c |
Lecture et vérification format AMSAT |
crc10.c |
Calcul CRC modulo 10 (checksum TLE) |
crc10.old.c |
Ancien calcul CRC (référence historique) |
| Fichier | Description |
|---|---|
satel.h |
Structure satel — éléments orbitaux d'un satellite |
amsatfor.h |
Chaînes de format AMSAT output |
fichiers.h |
Structures fichiers F6FBB BBS (héritage packet radio) |
| Fichier | Description |
|---|---|
Makefile |
Compilation Linux (GCC) |
Makefile.windows |
Cross-compilation Windows 64-bit (MinGW) |
| Version | Date | Description |
|---|---|---|
| 1.0 | 12/05/1991 | Lecture format NASA avec CRC modulo 10 |
| 1.0 | 27/05/1991 | Ajout lecture format AMSAT avec CRC |
| 1.23 | 10/06/1991 | Version anglaise |
| 1.24 | 29/06/1991 | Conversion de format NASA → AMSAT |
| 1.25 | 19/07/1991 | Correction bogue ancien format AMSAT |
| 1.26 | 19/12/1991 | Vérification EOF, format nom satellite %16s |
| 1.27 | 24/01/1992 | Nouveau format NASA : signe + vaut 0 pour le CRC |
| 1.27 | 24/01/1996 | Version dialogues en français |
| 1.28 | 26/02/2026 | Portage Linux |
| 1.29 | 26/02/2026 | Version Linux avec modules séparés, UTF-8, sécurisation |
Bernard Pidoux, F6BVP
bernard.f6bvp@gmail.com
AMSAT France
Copyright © 1991–2026 AMSAT France & Bernard Pidoux, F6BVP
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
See LICENSE for the full license text.