Gilmenel
Sindarin. noun. meaning Star of the Heavens
(Sindarin Elvish as created by J. R. R. Tolkien)
A framework for selecting stars in a target field that meet complex criteria defined by a telescope or instrument.
Given coordinates on-sky and a basic definition of a science instrument (basic instruments, along with some from the Southern African Large Telescope are included) stars can be selected for a specific purpose. The example is the output of the salt_guidestars.py script when pointed at the Jewel Box and with the --png flag enabled.
Installation
pip install gilmenel
Dependencies
For Ubuntu 18.04 and Python3:
# apt-get install python3-dev
$ sudo -H pip install -U pipenv
Libraries that might be required are:
# apt-get install default-libmysqlclient-dev
# apt-get install libssl-dev
Primary Python packages:
- astropy
- astroquery
- sqlalchemy
- matplotlib
Install DS9 for additional debugging:
# apt-get install saods9
Setup
$ make install
Place the config file 'docs/config.py' into the main project directory. Edit the file as required.
Removal
$ make uninstall
Testing
To run unit tests, execute:
$ make check
To run unit tests on source code change, execute:
$ make watch-check
To run coverage test, execute:
$ make coverage
Examples
Minimal example:
from astropy import units as u
from astropy.coordinates import SkyCoord
from gilmenel import gilmenel
from gilmenel import salt
gilmenel.init()
tarantula = SkyCoord(
'05h 38m 38s', '−69:05.7', unit=(u.hourangle, u.deg)
) # Tarantula Nebula
instr = salt.fif
instr.point_to(tarantula, pa=0 * u.deg)
stars = gilmenel.view_sky(instr)
guide_stars = gilmenel.find_best_stars(instr, stars)
print(guide_stars)
A full usage example can be found in salt_guidestars.py
Usage:
salt_guidestars.py field [OPTIONS] [jewel_box|near_jewel|somewhere|bootes_void|
unittest|regular|centre|offset|null|mbxgpS201906130009|mbxgpP201906130039|tarantula|
sunflower|m83] PA [pfgs|fif]
eg:
$ ./salt_guidestars.py field jewel_box 0 pfgs
DS9
When using ds9 for debugging, there appears to be two different versions that interpret the command string differently.
ds9 -dsseso "00:42:44.404 +41:16:08.78"
Versus
ds9 -dsseso coord "00:42:44.404 +41:16:08.78"
The code might need to be changed to reflect the version locally installed.
Catalogue
Asteria is designed to be run for a local or remote catalogue.
To download the whole-sky catalogue for SALT, run the command below. Please note that this is not recommended as A LOT of data (we're talking gigabytes here) will be downloaded.
$ ./catalogue/drop_db.sky
$ ./catalogue/create_db.py
$ ./catalogue/download_sky.py
$ ./catalogue/prepare_db.py
Should the catalogue download fail part-way through, inspect the files succeeded.tsv and failed.tsv for more details. Additional arguments can be passed to download_sky.py to begin in the correct place. Note that since data is downloaded and only committed to the database every 30 000 sources, a simple select query WHICH MUST INCLUDE THE LIMIT KEYWORD will show the last sources committed.
To view an image of the local catalogue, run:
$ ./catalogue/view_sky.py
To run the view command on remote machines without displays:
$ export MPLBACKEND="agg"
Database Operations
To see a summary of duplicates
select dup_count, count(dup_count) as row_count from (select count(source_id) as dup_count from Sources group by source) t group by dup_count order by dup_count;
To delete duplicate rows
delete from Sources where source_id not in (select min(source_id) from Sources group by source);
Commits
As of v0.4.0, this project will use the git commit message format outlined below:
[optional breaking ]<type>[ optional (<scope>)]: <description>
[optional body]
<type> is recommended to be one of:
fix
feat
build
chore
ci
docs
style
refactor
perf
test
<scope> is recommended to be a module, file, or folder name as appropiate.
This is a simpler version of https://www.conventionalcommits.org/
Versions
This project uses Semantic Versioning, for more details see https://semver.org/
Metadata
Release files for gilmenel 0.8.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| gilmenel-0.8.1.tar.gz | 25.8 kB | Without provenance | Details for gilmenel-0.8.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| gilmenel-0.8.1-py3-none-any.whl | Python 3 | none | any | Details for gilmenel-0.8.1-py3-none-any.whl |
Total release size: 58.3 kB
Release files / gilmenel-0.8.1.tar.gz
| Download URL | gilmenel-0.8.1.tar.gz |
|---|---|
| Size | 25.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d87db85fd2da54f7be62a607e36703b4f01541fea9cd8db26f17a1dafebddb0b
|
|
BLAKE2b-256 checksum How to use checksums |
c45e000761477c71832724f18a77884b9e1085386a63c941170a17e90cec7639
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.9
|
Release files / gilmenel-0.8.1-py3-none-any.whl
| Download URL | gilmenel-0.8.1-py3-none-any.whl |
|---|---|
| Size | 32.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ed4ed2f010035c4121cafbc40cffb97970c550ea37d2f0f15c13d75d419eedb0
|
|
BLAKE2b-256 checksum How to use checksums |
c01f98397e10e5cb7166beb84fdc67e847e0aba0fb8445162db3b0afe060c42f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.9
|
Security for gilmenel 0.8.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.