Skip to main content

LStein: a new approach to visualizing sparse 2.5-dimensional data in 2D

Project description

WELCOME

:local:
:depth: 3

[!WARNING] Note, that this package is currently under development. Most functionalities should work, but changes will be implemented on a running basis and without notice. No tests have been performed yet.

[!NOTE] This page summarizes the most common characteristics, pitfalls etc. Please refer to the paper (in prep) for a more detailed list and Tutorials for solutions to some known issues/missing features.

Reference

If you use this code in your work please use this entry in your bibliography (for now):

@software{PY_Steinwender2025_lstein,
	author    = {{Steinwender}, Lukas},
	title     = {LStein: Linking Series to envision information neatly},
	month     = Jul,
	year      = 2025,
	version   = {latest},
	url       = {https://github.com/TheRedElement/LStein.git}
}

Installation

You can easily install the package using pip:

pip3 install git+https://github.com/TheRedElement/LStein.git

Quick Start

Data used for Tutorials can be found in data/. There are also a few other datasets so feel free to have a play around. Each dataset is a .csv file with the following columns:

Column Description
$\theta$-values values to be plotted as azimuthal offset of the panel
$x$-values values to be plotted radially
$y$-values values to be plotted as an azimuthal offset constraint to a circle-sector
$y$-errors errors assigned to $y$-values
processing context which processing was used

The demo will behave as follows:

  1. take the first 3 columns (in order) as $\theta$-, $x$-, $y$-values
  2. take the column names as axis-labels
  3. plot a scatter for processing context="raw"
  4. plot a line for processing context!="raw"

You can try your own data as well, but make sure to

  1. follow the above-mentioned conventions
  2. add at least one row with processing context!="raw"
    1. if you just have raw data, you can always just duplicate the rows and change half of the rows to processing context!="raw"
<iframe src="_static/_notebooks/quickstart.html" width=100% height=600px></iframe>

Example Plots

Example for visualizing an ELAsTICC SN Ia. I compare LStein on the left to traditional displays on the right. Example for visualizing an ELAsTICC TDE. I compare LStein on the left to traditional displays on the right.
Example for visualizing an ELAsTICC SN II. I compare LStein on the left to traditional displays on the right. Example for visualizing a set of artificially simulated sine waves. I compare LStein on the left to traditional displays on the right.

Advantages and Downsides

Pros

  • no overcrowded panels
  • similar $\theta$-values (i.e., passbands) are plotted closer together
  • allows to preserve amplitude-differences across $\theta$-values for same $y$-values
  • allows depicting arbitrary number of $\theta$-values (by means of reducing the angular size of each $\theta$-panel)
  • works for people with color-blindness due to relational display of information
  • can be applied to variety of data (not only lightcurves)
    • examples: spectra over time, different machine learning models, spiking neural networks
  • layout entirely customizable

Cons

  • projection effects close to xmin
  • does currently not support plotting errorbars
    • workaround: plot another line if you want to indicate uncertainties

Known Bugs

Open

Resolved

  • y_projection_method="theta" goes haywire for huge $x$-values (for sure $x\ge10000$)
    • the reason is the necessity to compute $\tan$ and $arc\tan$ when converting back and forth between coordinate systems
    • workarounds
      • formulate your series relative to some value so you remain in a reasonable range
      • use y_projection_method="y"

TODO

  • update README.md once paper published
    • remove warning
    • adjust note

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lstein-1.0.0.tar.gz (25.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lstein-1.0.0-py3-none-any.whl (32.0 kB view details)

Uploaded Python 3

File details

Details for the file lstein-1.0.0.tar.gz.

File metadata

  • Download URL: lstein-1.0.0.tar.gz
  • Upload date:
  • Size: 25.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.15

File hashes

Hashes for lstein-1.0.0.tar.gz
Algorithm Hash digest
SHA256 043f4d954017da6e60405b7df6d92d3255befccfefcbd99335aed7e46d2cb272
MD5 335c0d0ea24b6e60f35d5302690f4621
BLAKE2b-256 d03b26be0a4f2914a73943526b5d46df3c7d9ccf941139ccde9fa0fd5341709f

See more details on using hashes here.

File details

Details for the file lstein-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: lstein-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 32.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.15

File hashes

Hashes for lstein-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a38af2294822769736fba22d4c55f1860facec813d78cb0e05ab6bbaad9aa786
MD5 a96490f0cdcb7834d7bd76936d398222
BLAKE2b-256 e8b31dddb760e3e7973dab3ce8ff2b294a5ccdf5751a2b7764626818bf51d633

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page