Skip to main content

A light curve collection server framework.

Project description

Build Status

LCC-Server is a Python framework to serve collections of light curves. The code here forms the basis for the HAT data server. See the installation notes notes below for how to install and configure the server.

Features

LCC-Server includes the following functionality:

  • collection of light curves from various projects into a single output format (text CSV files)
  • HTTP API and an interactive frontend for searching over multiple light curve collections by:
    • spatial cone search near specified coordinates
    • full-text search on object names, descriptions, tags, name resolution using SIMBAD's SESAME resolver for individual objects, and for open clusters, nebulae, etc.
    • queries based on applying filters to database columns of object properties, e.g. object names, magnitudes, colors, proper motions, variability and object type tags, variability indices, etc.
    • cross-matching to uploaded object lists with object IDs and coordinates
  • HTTP API for generating datasets from search results asychronously and interactive frontend for browsing these, caching results from searches, and generating output zip bundles containing search results and all matching light curves
  • HTTP API and interactive frontend for detailed information per object, including light curve plots, external catalog info, and period-finding results plus phased LCs if available
  • Access controls for all generated datasets, and support for user sign-ins and sign-ups

Installation

NOTE: Python >= 3.6 is required. Use of a virtualenv is recommended; something like this will work well:

$ python3 -m venv lcc
$ source lcc/bin/activate

This package is available on PyPI. Install it with the virtualenv activated:

$ pip install numpy  # to set up Fortran bindings for dependencies
$ pip install lccserver  # add --pre to install unstable versions

To install the latest version from Github:

$ git clone https://github.com/waqasbhatti/lcc-server
$ cd lcc-server
$ pip install -e .

If you're on Linux or MacOS, you can install the uvloop package to optionally speed up some of the eventloop bits:

$ pip install uvloop

Using the server

Some post-installation setup is required to begin serving light curves. In particular, you will need to set up a base directory where LCC-Server can work from and various sub-directories.

To make this process easier, there's an interactive CLI available when you install LCC-Server. This will be in your $PATH as lcc-server.

A Jupyter notebook walkthough using this CLI to stand up an LCC-Server instance, with example light curves, can be found in the astrobase-notebooks repo: lcc-server-setup.ipynb (Jupyter nbviewer).

Documentation

Server docs are automatically generated from the server-docs directory in the git repository. Sphinx-based documentation for the Python modules is on the TODO list and will be linked here when done.

Changelog

Please see: https://github.com/waqasbhatti/lcc-server/blob/master/CHANGELOG.md for a list of changes applicable to tagged release versions.

Screenshots

The search interface

LCC server search interface

Datasets from search results

LCC server results display

Per-object information

LCC server object info

License

LCC-Server is provided under the MIT License. See the LICENSE file for the full text.

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

lccserver-0.2.1.tar.gz (6.3 MB view hashes)

Uploaded Source

Built Distribution

lccserver-0.2.1-py3-none-any.whl (6.7 MB view hashes)

Uploaded Python 3

Supported by

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