{"id":20047244,"url":"https://github.com/wojciech-graj/libsatcat","last_synced_at":"2026-03-12T10:01:19.057Z","repository":{"id":46657169,"uuid":"500557601","full_name":"wojciech-graj/libSATCAT","owner":"wojciech-graj","description":"Satellite Catalogue (SATCAT) Parser","archived":false,"fork":false,"pushed_at":"2025-04-08T06:46:27.000Z","size":1252,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-08T07:38:04.040Z","etag":null,"topics":["c","celestrak","parser","parsing","satcat","satellite","satellite-catalog","satellite-catalogue"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wojciech-graj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-06T18:56:20.000Z","updated_at":"2025-04-08T06:46:26.000Z","dependencies_parsed_at":"2025-02-01T09:20:21.265Z","dependency_job_id":"3cf91533-5ab9-4f73-9cad-f04e55c698df","html_url":"https://github.com/wojciech-graj/libSATCAT","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wojciech-graj%2FlibSATCAT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wojciech-graj%2FlibSATCAT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wojciech-graj%2FlibSATCAT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wojciech-graj%2FlibSATCAT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wojciech-graj","download_url":"https://codeload.github.com/wojciech-graj/libSATCAT/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252480421,"owners_count":21754774,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","celestrak","parser","parsing","satcat","satellite","satellite-catalog","satellite-catalogue"],"created_at":"2024-11-13T11:34:52.256Z","updated_at":"2026-03-12T10:01:14.034Z","avatar_url":"https://github.com/wojciech-graj.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# libSATCAT\n\nC Parser for the SATCAT Format.\n\nANSI C compliant and linkable with C++.\n\n- SATCAT Format Documentation: https://www.celestrak.org/satcat/satcat-format.php\n- SATCAT Data: https://www.celestrak.org/pub/satcat.txt\n\n## Build\n\nThe demo program `test/test.c` can be compiled as follows:\n\n```\ncd test\ngcc ../src/satcat.c ../src/satcat_code.c test.c -lm -ansi -I../src -o bin\n./bin\n```\n\nYielding the following output:\n\n```\nParsed and Validated 52802 satellites in 0.066405s.\nFound 51898 valid satellites and 904 invalid satellites.\n\nFirst satellite:\nName: SL-1 R/B\nCatalog Number: 1\nStatus: Decayed\nSource: Commonwealth of Independent States (former USSR)\nLaunch Site: Tyuratam Missile and Space Center, Kazakhstan\n```\n\n## Usage\n\nBy default, strings within `struct SatCat` are **NOT** NULL-terminated, and are right-padded with spaces. To enable NULL-terminated strings, define `SC_CSTRING`.\n\nThe SATCAT library consists of the following files:\n\n#### `satcat.c` + `satcat.h`\n\nParses and validates SATCAT strings.\n\n- `sc_parse`: Parses a SATCAT-formatted string into a `struct SatCat`\n- `sc_validate`: Validates if string is SATCAT-formatted\n\n#### `satcat_code.c` + `satcat_code.h` [**Optional**]\n\nProvides description strings for SATCAT Operational Status, Source, and Launch Site Codes.\n\n- `SC_STR5_TO_CODE` macro: converts a 5-character code (either `char source[5]` or `char launch_site[5]` in `struct SatCat`) into a numeric contant of type `sc_code_t`, equal to one of `SCSRC_*` or `SCSITE_*`\n- `sc_source_str` \u0026 `sc_launch_site_str`: takes a `sc_code_t` code and return a verbose description of the satellite's source or launch site.\n- `sc_status_str`: takes an Operational Status Code (`char opstat` in `struct SatCat`, or `SCSTAT_*`), and returns a description of the satellite's status.\n\nThese files can be regenerated using `util/gen_code.py` if the SATCAT Operational Status, Source, and Launch Site Codes are expanded.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwojciech-graj%2Flibsatcat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwojciech-graj%2Flibsatcat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwojciech-graj%2Flibsatcat/lists"}