{"id":31942952,"url":"https://github.com/emirozer/bowshock","last_synced_at":"2025-10-14T09:47:04.461Z","repository":{"id":30907427,"uuid":"34465242","full_name":"emirozer/bowshock","owner":"emirozer","description":"all-in-one wrapper for NASA API's","archived":false,"fork":false,"pushed_at":"2018-04-09T08:14:35.000Z","size":144,"stargazers_count":86,"open_issues_count":2,"forks_count":9,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-09-27T09:09:01.328Z","etag":null,"topics":["client-lib","nasa-api","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/emirozer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-23T15:37:47.000Z","updated_at":"2025-02-20T19:24:37.000Z","dependencies_parsed_at":"2022-09-26T21:41:03.400Z","dependency_job_id":null,"html_url":"https://github.com/emirozer/bowshock","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/emirozer/bowshock","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emirozer%2Fbowshock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emirozer%2Fbowshock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emirozer%2Fbowshock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emirozer%2Fbowshock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emirozer","download_url":"https://codeload.github.com/emirozer/bowshock/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emirozer%2Fbowshock/sbom","scorecard":{"id":375767,"data":{"date":"2025-08-11","repo":{"name":"github.com/emirozer/bowshock","commit":"9f5e053f1d54995b833b83616f37c67178c3e840"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.3,"checks":[{"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":"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":"Code-Review","score":2,"reason":"Found 6/28 approved changesets -- score normalized to 2","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":"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENCE:0","Info: FSF or OSI recognized license: GNU General Public License v2.0: LICENCE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 8 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-18T14:12:49.349Z","repository_id":30907427,"created_at":"2025-08-18T14:12:49.349Z","updated_at":"2025-08-18T14:12:49.349Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279018604,"owners_count":26086404,"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","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["client-lib","nasa-api","python"],"created_at":"2025-10-14T09:45:16.036Z","updated_at":"2025-10-14T09:47:04.455Z","avatar_url":"https://github.com/emirozer.png","language":"Python","readme":"![Screenshot](https://raw.githubusercontent.com/emirozer/bowshock/master/docs/bowshock2.png)\n===========\n[![PyPI version](https://badge.fury.io/py/bowshock.svg)](http://badge.fury.io/py/bowshock)\n[![Downloads](https://img.shields.io/pypi/dm/bowshock.svg)](https://img.shields.io/pypi/dm/bowshock.svg)\n[![Status](https://img.shields.io/pypi/status/bowshock.svg)](https://img.shields.io/pypi/status/bowshock.svg)\n[![Build Status](https://travis-ci.org/emirozer/bowshock.svg)](https://travis-ci.org/emirozer/bowshock)\n\n===========\n\n## About\n\nbowshock is an all-in-one wrapper for NASA API's.\nHere is a list of currently supported API's :\n\n* NASA [Earth API](https://api.nasa.gov/api.html#earth)\n* NASA [APOD (Astronomy Picture of the Day) API](https://api.nasa.gov/api.html#apod)\n* NASA [Patents API](https://api.nasa.gov/api.html#patents)\n* NASA [Earth Temperature Anomalies API](https://api.nasa.gov/api.html#earth-temperature-anomalies)\n* [Asterank API](http://www.asterank.com/api)\n* [HelioViewer API](http://helioviewer.org/api/docs/v1/)\n* [MAAS (Mars Weather) API](http://marsweather.ingenology.com/#get_started)\n* [MODIS (Land, Atmosphere and Ocean Data) API](http://daac.ornl.gov/MODIS/MODIS-menu/modis_webservice.html)\n* [Skymorph API](http://www.asterank.com/skymorph)\n* [Star API](http://hacktheuniverse.github.io/star-api/)\n* [Techport API](https://data.nasa.gov/developer/external/techport/techport-api.pdf)\n* [PredictTheSky API](http://predictthesky.org/developers.html)\n\n## Install\n\nStandart Procedure\n\n\tpip install bowshock\n\n*Important Note*: The only requirement is the 'requests' package BUT if you want to use MODIS there is an external requirement which is 'suds' package\n\n## Do i need an API Key ?\n\nYES    | NO\n------   |----\nEarth  |The rest\nAPOD |\nPatents |\nEarth Temperature Anomalies|\n\n**The rest does not require an API key for usage.**\nGet your NASA API KEY from : https://data.nasa.gov/developer/external/planetary/#apply-for-an-api-key\n\n#### Setting up the API Key\n===================\nset an environment varible NASA_API_KEY which is equal to your key string\n\n\n## Usage\n\n-\n##### Apod\n```python\nfrom bowshock import apod\n\n# with specific date and tags - For apod all args are optional\napod.apod(date=\"2015-02-02\", concept_tags=True)\n\n```\n\n-\n##### Asterank\n```python\nfrom bowshock import asterank\n\n# all args mandatory\nasterank.asterank(\n            \tquery={\"e\": {\"$lt\": 0.1},\n               \t       \"i\": {\"$lt\": 4},\n                       \"a\": {\"$lt\": 1.5}},\n                  limit=1)\n\n```\n\n\n-\n##### Earth\n```python\nfrom bowshock import earth\n\n# imagery endpoint lon \u0026 lat mandatory, rest optional\nearth.imagery(lon=100.75,\n                    lat=1.6,\n                    dim=0.0025,\n                    date=\"2015-02-02\",\n                    cloud_score=True)\n# assets endpoint lon \u0026 lat \u0026 begin mandatory, end optional\nearth.assets(lon=100.75, lat=1.6, begin=\"2015-02-02\", end=\"2015-02-10\")\n```\n\n-\n##### HelioViewer\n```python\nfrom bowshock import helioviewer\n\n# args are mandatory\nhelioviewer.getjp2image(date='2014-01-01T23:59:59', sourceId=14)\n#args are mandatory\nhelioviewer.getjp2header(Id=7654321)\n\n```\n\n\n-\n##### MAAS\n```python\nfrom bowshock import maas\n\n# mandatory date begin / end\nmaas.maas_archive('2012-10-01', '2012-10-31')\n\nmaas.maas_latest()\n\n```\n\n-\n##### Patents\n```python\nfrom bowshock import patents\n\n# only query is mandatory, rest is optional\npatents.patents(query=\"temperature\", concept_tags=True, limit=5)\n\n```\n\n\n-\n##### PredictTheSky\n```python\nfrom bowshock import predictthesky\n\n#args are mandatory\npredictthesky.space_events(lon=100.75, lat=1.5)\n\n```\n\n\n-\n##### Star API\n```python\nfrom bowshock import star\n\nstar.stars()\nstar.search_star(\"Sun\")\n\nstar.exoplanets()\nstar.search_exoplanet(\"11 Com\")\n\nstar.local_group_of_galaxies()\nstar.search_local_galaxies(\"IC 10\")\n\nstar.star_clusters()\nstar.search_star_cluster(\"Berkeley 59\")\n\n```\n\n\n-\n##### Skymorph\n```python\nfrom bowshock import skymorph\n\n# mandatory obj id\nskymorph.search_target_obj(\"J99TS7A\")\n\n#TODO : add search_position() , search_target_obj()\n\n```\n\n\n-\n##### temperature anomalies\n```python\nfrom bowshock import temperature_anomalies\n\n# end arg is optional, rest is mandatory\ntemperature_anomalies.coordinate(lon=100.3, lat=1.6, begin=\"1990\", end=\"2005\")\n\n\n```\n\n\n-\n##### techport\n```python\nfrom bowshock import techport\n\ntechport.techport(Id=\"4795\")\n\n```\n## Contributors\n\n* [Dan Wagner](https://github.com/danwagnerco)\n\u003cbr\u003e\n\n## TODO\n- Lance-Modis API - http://lance-modis.eosdis.nasa.gov/user_services/api-lance.html\n\n## BTW What is \"bowshock\"?\n![Screenshot](https://raw.githubusercontent.com/emirozer/bowshock/master/docs/bowshock.jpg)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femirozer%2Fbowshock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femirozer%2Fbowshock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femirozer%2Fbowshock/lists"}