{"id":40551081,"url":"https://github.com/esperlu/metar","last_synced_at":"2026-01-21T00:02:12.946Z","repository":{"id":56380480,"uuid":"69656004","full_name":"esperlu/metar","owner":"esperlu","description":"Get aviation metar and tafs in command line","archived":false,"fork":false,"pushed_at":"2025-10-28T12:55:06.000Z","size":76754,"stargazers_count":31,"open_issues_count":2,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-10-28T14:46:46.299Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/esperlu.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","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":"2016-09-30T10:03:05.000Z","updated_at":"2025-10-28T12:50:01.000Z","dependencies_parsed_at":"2022-08-15T17:40:35.668Z","dependency_job_id":"ae287784-5d8e-4e6d-93dc-9172014b5a24","html_url":"https://github.com/esperlu/metar","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/esperlu/metar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esperlu%2Fmetar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esperlu%2Fmetar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esperlu%2Fmetar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esperlu%2Fmetar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/esperlu","download_url":"https://codeload.github.com/esperlu/metar/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esperlu%2Fmetar/sbom","scorecard":{"id":382891,"data":{"date":"2025-08-11","repo":{"name":"github.com/esperlu/metar","commit":"1854f0f1a78feb2425ce8bbaff5448cd3a55cb9d"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 1/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-18T15:53:38.894Z","repository_id":56380480,"created_at":"2025-08-18T15:53:38.894Z","updated_at":"2025-08-18T15:53:38.894Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28618863,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T23:49:58.628Z","status":"ssl_error","status_checked_at":"2026-01-20T23:47:29.996Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2026-01-21T00:02:12.265Z","updated_at":"2026-01-21T00:02:12.935Z","avatar_url":"https://github.com/esperlu.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# metar\n\n\nThis Go program is a console (terminal) application that retrieves aviation METARs and TAFs for a given list of airports and other weather stations. Special care has been taken to optimize execution speed by using goroutines for concurrent data retrieval of METARs and TAFs.\n\nIn addition to the METAR messages, the program computes the wind chill factor, heat index, and relative humidity when applicable.\n\n## Options\n\n\n```\n  -n  \u003cn\u003e         Set the number of METARs to print per station. N: 1 to 70\n  -s  \u003cstring\u003e    Search for an airport by IATA/ICAO code\n  -lc \u003cstring\u003e    List all countries with their ISO code (\u003cstring\u003e may be empty)\n  -la \u003cstring\u003e    List all airports in one or more countries (ISO country codes)\n  -t  \u003ct\u003e         Set connection timeout. T: 1 to 10\n  -r              Print raw data without additional factors\n  -m              METARs only (mutually exclusive with -f)\n  -f              TAFs only (mutually exclusive with -m)\n  -h              Show this help screen\n```\n\n\n## Retrieve messages for a list of stations (IATA or ICAO codes)\n\n```sh\n$ metar cdg FACT\n```\n(Case insensitive)\n\nExample output:\n\n```\nLFPG (CDG) Charles de Gaulle International Airport (Paris), France FR (EU)\nLFPG 060600Z 03003KT CAVOK 19/10 Q1017 NOSIG [19 19 56%]\nLFPG 060530Z 02004KT CAVOK 17/09 Q1017 NOSIG [17 17 59%]\nLFPG 060500Z 02006KT CAVOK 17/09 Q1017 NOSIG [17 17 59%]\nLFPG 060430Z 03005KT CAVOK 16/09 Q1017 NOSIG [16 16 63%]\nTAF 060500Z 0606/0712 04005KT CAVOK TX36/0712Z TN17/0606Z\n\nFACT (CPT) Cape Town International Airport (Cape Town), South Africa ZA (AF)\nFACT 060600Z VRB02KT 9999 FEW030 BKN045 07/06 Q1030 NOSIG [7 7 93%]\nFACT 060500Z VRB01KT 9999 -RA FEW035 BKN045 07/06 Q1030 NOSIG [7 7 93%]\nFACT 060400Z 05004KT 9999 FEW035 BKN050 06/05 Q1029 NOSIG [5 6 93%]\nTAF 060400Z 0606/0712 03005KT 9999 SCT020 BKN030 TX17/0712Z TN08/0706Z FM061300 18013KT CAVOK FM062300 VRB03KT CAVOK\n\n\n```\n\n\nAt the end of each METAR, the three values in brackets are the computed:  \n```[ wind chill factor | heat index | relative humidity % ]```\n\n\n## Find the IATA/ICAO airport code for an airport\n\n```sh\n$ metar -s munich\n$ metar -s \"new york\"\n```\n\n\n## List ISO country codes\n\n```sh\n$ metar -lc\n$ metar -lc africa\n```\n\n\n## List all airports in specified countries using ISO country codes\n\n```sh\n$ metar -la fr\n$ metar -la it pt es uk\n```\n\n## Help screen\n\n```sh\n$ metar -h\n```\n\n## Installation\n\n\nYou will need to compile the sources using the Go tools. Follow this [how-to](https://go.dev/doc/tutorial/compile-install) to get started. Compilation is lightning fast, and [cross-compilation](http://dave.cheney.net/2015/08/22/cross-compilation-with-go-1-5) is easy.\n\n### Install the latest Go for your platform\n\n* Easy way: install the [latest version binaries](https://golang.org/dl/) or use your distro's package manager (may not always be the latest version)\n* Advanced: [compile Go from source](https://golang.org/doc/install/source)\n\n### Get this metar repository\n\n1. Run the following command to install the metar repo in the directory defined by your `GOPATH` environment variable:\n  ```sh\n  go get github.com/esperlu/metar\n  ```\n2. Navigate to the local sources: `\u003cGOPATH\u003e/src/github.com/esperlu/metar`\n3. Try it out: run the following command to get the METAR weather reports for Brussels (BRU, BE) and New York (JFK, US):\n  ```sh\n  go run metar.go bru jfk\n  ```\n4. If successful, compile the metar sources and data:\n   * To compile the binary and save it in the current directory:\n    ```sh\n    go build metar.go\n    ```\n   * To compile the binary and install it in the binary folder defined by the `GOBIN` environment variable:\n    ```sh\n    go install metar.go\n    ```\n    This will make the binary accessible and executable system-wide.\n\n\n## Utilities\n\nThe airport list and METAR stations list are hardcoded for speed. However, these lists are subject to change. To update the lists, run the `updateStations.go` program in the `util` directory. Then recompile the main program `metar.go` to hardcode the updated lists.\n\n\n\n## Bug report\n\nRough edges are not excluded. Please [report any bugs](https://github.com/esperlu/metar/issues).\n\n\n## Credits\n\nMETAR weather messages are retrieved from NOAA's aviationweather.gov in real time.\nMETAR stations list and names are compiled from:\n* [aviationweather.gov](https://www.aviationweather.gov/docs/metar/stations.txt)\n* [ourairports.com](https://ourairports.com/data/airports.csv)\n\n----\n#### (c) Jean-Luc Lacroix\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesperlu%2Fmetar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fesperlu%2Fmetar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesperlu%2Fmetar/lists"}