| Name | satdatagen JSON |
| Version |
1.0.1
JSON |
| download |
| home_page | None |
| Summary | A Python package to generate datasets for satellite tasking schedulers. |
| upload_time | 2024-08-09 16:54:16 |
| maintainer | None |
| docs_url | None |
| author | None |
| requires_python | >=3.8 |
| license | None |
| keywords |
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# satdatagen
a Python package for generating datasets to be used in satellite tasking schedulers
## Installation
`satdatagen` is in the Python Package Index, and can be installed using pip. The command:
`python3 -m pip install satdatagen`
or
`pip3 install satdatagen`
will install the `satdatagen` library in addition to all necessary dependencies.
*Note: in some cases the library `openmeteo-requests` does not get automatically installed. Users will need to run `pip3 install openmeteo-requests` only once to solve this*
## User Requirements
This package relies on data collected from space-track.org, one of the main resource for satellite ephemeral data. Users of satdatagen must have an existing space-track.org login. Add a file called `credentials.json` to your working directory, with login information formatted as a JSON object:
```
{
identity : 'username@email.com',
password : 'yourPassword12345'
}
```
The satdatagen code will query the space-track.org servers for satellite data using the user's login information. Note that each user is subject to space-track's query limit - up to 30 queries per minute and up to 300 queries per hour.
## Usage
The `satdatagen` library is easy to use. A dataset can be generated with minimal lines of code. Dataset generation revolves around the creation of 2 objects: a `TimeRange` object and a `GroundLocation` object.
### `TimeRange`
`satdatagen.TimeRange(start_date, periods, delta = 0, end_date = None)`
#### Parameters:
**start_date**: `datetime` object or `str` in ISO-T format (`YYYY-MM-DDTHH:mm:ss`). Represents the start date/time for the dataset scheduling
**periods**: `int`. Represents the number of time steps in the time range for the duration of scheduling
**[delta]**: optional parameter. `int`. Represents the time between each time step in the time range
**[end_date]**: optional parameter. `datetime` object or `str` in ISO-T format (`YYYY-MM-DDTHH:mm:ss`). Represents the final date/time in the time range.
Users must provide *either* a `delta` value or `end_date` value to control the length of the time range.
***
### `GroundLocation`
`satdatagen.GroundLocation(space_track_credentials, latitude, longitude, time_range)`
#### Parameters:
**space_track_credentials**: `str`. Path to the `.json` file with space-track.org login info as described above in User Requirements.
**latitude**: `float`. Latitude of the ground location where the observatory is located
**longitude**: `float`. Longitude of the ground location where the observatory is located
**time_range**: `TimeRange` object. Represents the time range for which the dataset will find satellites overhead of the observatory.
#### Methods:
**generate_dataset**
`generate_dataset(self, method = 'krag', limit = None, orbit = 'all', mixing_coeff = 0.8, output_file = None)`
**method**: `str`. The method to use to calculate apparent visual magnitude (AVM). Options are `'krag'`, `'hejduk'`, or `'molczan'`.
**limit**: `int`. The number of satellites to include in the dataset. Default is no limit.
**orbit**: `str`. A filter for satellites in a certain orbit. Options are `'LEO'`, `'MEO'`, `'GEO'`, or `'all'`. Default is `'all'`, no filter.
**mixing_coeff**: `float`. A value between 0 and 1 that defines the ratio of diffuse reflection off objects. Default is `0.8`. *only used when `method=='hejduk'`*
**output_file**: `str`. Path to a `.json` file to output the dataset to. File does not need to be created beforehand.
*Note: all parameters described above for the `generate_dataset` method are optional.*
## Example
```
import satdatagen as sdg
from datetime import datetime
start_date = datetime(2024, 6, 18, hour = 20, minute = 0)
periods = 24
delta = 30
haystack_lon = -71.44 #degrees west
haystack_lat = 42.58 #degrees north
credentials = '/path/to/space/track/credentials.json'
tr = sdg.TimeRange(start_date = start_date, periods = periods, delta = delta) #time range is 12 hours long
gl = sdg.GroundLocation(credentials, haystack_lat, haystack_lon, tr)
#use Molczan's method to calculate AVM, only include 500 satellites in the dataset, and save the dataset to dataset.json
ds = gl.generate_dataset(method = 'molczan', limit = 500, output_file = 'dataset.json')
```
Raw data
{
"_id": null,
"home_page": null,
"name": "satdatagen",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": "Adina Golden <adinag@alum.mit.edu>",
"download_url": "https://files.pythonhosted.org/packages/ed/26/363390c2f5cee642b96ab9a4f1300ef1fb86335e9415ba23c4af9ba13844/satdatagen-1.0.1.tar.gz",
"platform": null,
"description": "# satdatagen\na Python package for generating datasets to be used in satellite tasking schedulers\n\n## Installation\n`satdatagen` is in the Python Package Index, and can be installed using pip. The command:\n\n`python3 -m pip install satdatagen`\n\nor\n\n`pip3 install satdatagen`\n\nwill install the `satdatagen` library in addition to all necessary dependencies.\n\n*Note: in some cases the library `openmeteo-requests` does not get automatically installed. Users will need to run `pip3 install openmeteo-requests` only once to solve this*\n\n## User Requirements\nThis package relies on data collected from space-track.org, one of the main resource for satellite ephemeral data. Users of satdatagen must have an existing space-track.org login. Add a file called `credentials.json` to your working directory, with login information formatted as a JSON object:\n\n```\n{\n identity : 'username@email.com',\n password : 'yourPassword12345'\n}\n```\n\nThe satdatagen code will query the space-track.org servers for satellite data using the user's login information. Note that each user is subject to space-track's query limit - up to 30 queries per minute and up to 300 queries per hour. \n\n## Usage\n\nThe `satdatagen` library is easy to use. A dataset can be generated with minimal lines of code. Dataset generation revolves around the creation of 2 objects: a `TimeRange` object and a `GroundLocation` object.\n\n### `TimeRange`\n`satdatagen.TimeRange(start_date, periods, delta = 0, end_date = None)`\n\n#### Parameters:\n**start_date**: `datetime` object or `str` in ISO-T format (`YYYY-MM-DDTHH:mm:ss`). Represents the start date/time for the dataset scheduling\n\n**periods**: `int`. Represents the number of time steps in the time range for the duration of scheduling\n\n**[delta]**: optional parameter. `int`. Represents the time between each time step in the time range\n\n**[end_date]**: optional parameter. `datetime` object or `str` in ISO-T format (`YYYY-MM-DDTHH:mm:ss`). Represents the final date/time in the time range.\n\n\n\nUsers must provide *either* a `delta` value or `end_date` value to control the length of the time range.\n\n***\n\n### `GroundLocation`\n`satdatagen.GroundLocation(space_track_credentials, latitude, longitude, time_range)`\n\n#### Parameters:\n**space_track_credentials**: `str`. Path to the `.json` file with space-track.org login info as described above in User Requirements.\n\n**latitude**: `float`. Latitude of the ground location where the observatory is located\n\n**longitude**: `float`. Longitude of the ground location where the observatory is located\n\n**time_range**: `TimeRange` object. Represents the time range for which the dataset will find satellites overhead of the observatory.\n\n\n#### Methods:\n\n**generate_dataset**\n`generate_dataset(self, method = 'krag', limit = None, orbit = 'all', mixing_coeff = 0.8, output_file = None)`\n\n**method**: `str`. The method to use to calculate apparent visual magnitude (AVM). Options are `'krag'`, `'hejduk'`, or `'molczan'`. \n\n**limit**: `int`. The number of satellites to include in the dataset. Default is no limit. \n\n**orbit**: `str`. A filter for satellites in a certain orbit. Options are `'LEO'`, `'MEO'`, `'GEO'`, or `'all'`. Default is `'all'`, no filter.\n\n**mixing_coeff**: `float`. A value between 0 and 1 that defines the ratio of diffuse reflection off objects. Default is `0.8`. *only used when `method=='hejduk'`*\n\n**output_file**: `str`. Path to a `.json` file to output the dataset to. File does not need to be created beforehand.\n\n*Note: all parameters described above for the `generate_dataset` method are optional.*\n\n\n## Example\n\n```\nimport satdatagen as sdg\nfrom datetime import datetime\n\nstart_date = datetime(2024, 6, 18, hour = 20, minute = 0)\nperiods = 24\ndelta = 30\nhaystack_lon = -71.44 #degrees west\nhaystack_lat = 42.58 #degrees north\n\ncredentials = '/path/to/space/track/credentials.json'\n\ntr = sdg.TimeRange(start_date = start_date, periods = periods, delta = delta) #time range is 12 hours long\ngl = sdg.GroundLocation(credentials, haystack_lat, haystack_lon, tr)\n\n#use Molczan's method to calculate AVM, only include 500 satellites in the dataset, and save the dataset to dataset.json\nds = gl.generate_dataset(method = 'molczan', limit = 500, output_file = 'dataset.json') \n\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "A Python package to generate datasets for satellite tasking schedulers.",
"version": "1.0.1",
"project_urls": {
"Homepage": "https://github.com/ahgolden/satdatagen",
"Issues": "https://github.com/ahgolden/satdatagen/issues"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5e640006ebea012f64017f64feea5896970192712a71febda8910196212fbf8c",
"md5": "2f480780d4ee10d278dffb64074c5ea6",
"sha256": "d58e3d94627b86df0dbc5b0d771b1a7fb5558d91082c06e0a7ab8a1f49620bc9"
},
"downloads": -1,
"filename": "satdatagen-1.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2f480780d4ee10d278dffb64074c5ea6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 3117695,
"upload_time": "2024-08-09T16:54:14",
"upload_time_iso_8601": "2024-08-09T16:54:14.199683Z",
"url": "https://files.pythonhosted.org/packages/5e/64/0006ebea012f64017f64feea5896970192712a71febda8910196212fbf8c/satdatagen-1.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ed26363390c2f5cee642b96ab9a4f1300ef1fb86335e9415ba23c4af9ba13844",
"md5": "c3ed8f5cefe136cfb276aad41bfa2b8e",
"sha256": "68825d66ea753019e95918c1e124f49155557aac3b174a7cca033e71b60c398d"
},
"downloads": -1,
"filename": "satdatagen-1.0.1.tar.gz",
"has_sig": false,
"md5_digest": "c3ed8f5cefe136cfb276aad41bfa2b8e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 2900106,
"upload_time": "2024-08-09T16:54:16",
"upload_time_iso_8601": "2024-08-09T16:54:16.248640Z",
"url": "https://files.pythonhosted.org/packages/ed/26/363390c2f5cee642b96ab9a4f1300ef1fb86335e9415ba23c4af9ba13844/satdatagen-1.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-09 16:54:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ahgolden",
"github_project": "satdatagen",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "satdatagen"
}