Skip to main content

Features - Install - Documentation

JWST observation planning and simulation for minor bodies across the Solar System. You define the target and instrument(s) – jayrock does the rest.

>>> import jayrock

Features

Computation of target ephemeris

Define a solar system target by name and then compute and display its JWST-observable ephemeris for a specified cycle, including visibility windows, magnitude changes, and thermal flux estimates.

>>> achilles = jayrock.Target("achilles") # define target by name or designation
>>> achilles.compute_ephemeris(cycle=6)   # compute ephemeris for JWST Cycle 6
>>> achilles.print_ephemeris()
(588) Achilles: Ephemeris from 2027-07-01 to 2028-06-30
├── Window 1: 2027-07-02 -> 2027-08-10
│   ├── Duration         40 days
│   ├── Vmag             16.18 -> 16.48
│   └── Thermal @ 15um   393.39 -> 308.31 mJy
├── Window 2: 2028-03-02 -> 2028-04-21
│   ├── Duration         51 days
│   ├── Vmag             16.54 -> 16.15
│   └── Thermal @ 15um   279.80 -> 360.74 mJy
└── errRA/errDec in arcsec: 0.027 / 0.005

Modelling of reflectance spectrum and thermal emission

Identify the dates of maximum and minimum thermal emission within the visibility window and then plot the target's modelled reflectance and thermal spectrum for a direct comparison between the two observation dates.

>>> # compare spectra at dates of max/min thermal emission
>>> date_thermal_max = achilles.get_date_obs(at="thermal_max")
>>> date_thermal_min = achilles.get_date_obs(at="thermal_min")
>>> achilles.plot_spectrum(date_obs=[date_thermal_max, date_thermal_min])

Modelled spectrum of (588) Achilles at two different observation dates

Compute instrument configuration to reach SNR target

Configure a JWST instrument and calculate the required exposure time parameters (groups and integrations) to achieve a specified Signal-to-Noise Ratio (SNR) at a particular wavelength.

>>> miri_lrs = jayrock.Instrument('MIRI', mode='LRSSLIT')
>>> miri_lrs.detector.nexp = 2  # 2-pt dither
>>> miri_lrs.detector.readout_pattern = 'fastr1'  # recommended for LRS
>>> # Compute exposure times for SNR target of 300 at 10 micron
>>> miri_lrs.set_snr_target(300, target, date_thermal_min, wave=10)
>>> # -> jayrock defines ngroup and nint for you

Visualise SNR across detector configurations and possible saturation issues

Simulate multiple observations using manually set exposure parameters across different detector configurations (apertures/filters/dispersers). Plot the resulting simulated SNR over the full wavelength range for all defined observations.

# Simulate observation of Achilles on date of minimum Vmag
date_obs = achilles.get_date_obs(at="vmag_min")

observations = []  # list to store observations

inst = jayrock.Instrument("NIRSpec", mode="IFU")

for disp, filt in [("G235M", "F170LP"), ("G395M", "F290LP")]:

    # Set filter and disperser
    inst.disperser = disp
    inst.filter = filt

    # Set ngroup, nint, nexp directly
    inst.detector.ngroup = 10  # number of groups per integration
    inst.detector.nint = 1     # number of integrations per exposure
    inst.detector.nexp = 4     # number of exposures -> number of dithers

    obs = jayrock.observe(achilles, inst, date_obs=date_obs)
    observations.append(obs)

# Plot SNR over wavelength
jayrock.plot_snr(observations)

Simulated SNR of NIRSpec observation of (588) Achilles

Install

Install from PyPi using pip:

 $ pip install jayrock

The minimum required python version is 3.11. jayrock relies on pandeia, the python engine behind the JWST ETC. Detailed install instructions for this dependency can be found here.

Documentation

Check out the documentation at jayrock.readthedocs.io.

Metadata

Release files for jayrock 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jayrock 0.0.3
File Size Uploaded
jayrock-0.0.3.tar.gz 18.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jayrock 0.0.3
File Interpreter ABI Platform
jayrock-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 37.7 kB

Release files / jayrock-0.0.3.tar.gz

Download URL jayrock-0.0.3.tar.gz
Size 18.1 kB
Tags Source
SHA-256 checksum
How to use checksums
7321b485c384f077539ecc4113b2396898aa72354d2cf788a660f90cecfb494a
BLAKE2b-256 checksum
How to use checksums
ef3f5b65be3c894739dbe70d854db7b994029c921f49de87ddfb650c5ea9a0f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.1 CPython/3.12.3 Linux/6.5.0-44-generic

Release files / jayrock-0.0.3-py3-none-any.whl

Download URL jayrock-0.0.3-py3-none-any.whl
Size 19.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f8993a3dfdc087b42fe714a39b4f51f70021f40f33569b09e77e60d5df3b9982
BLAKE2b-256 checksum
How to use checksums
f48f2addc4f7eee437c3ec7120b9803900ed6afdfdedcd62bda0446898df0a8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.1 CPython/3.12.3 Linux/6.5.0-44-generic

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page