Metadata-Version: 2.1
Name: nsb
Version: 0.4.3
Summary: ('Draws nightsky allskymaps',)
Home-page: https://pypi.python.org/pypi/nsb
Author: Matthias Buechele
Author-email: matthias.buechele@fau.de
License: UNKNOWN
Description: 
        # nsb (Night Sky Backgound)
        
        *****************************
        
        Draws nightsky allskymaps corresponding to KRISCIUNAS Model of the Brightness of Moonlight together with star data obtained from the GAIA public data release catalog. The result is a 2D Pixel array with physical brightness values for each sky position.
        
        
        Or estimate the brightness for a given source over a timespann. The GAIA Data will we automatically downloaded via an query to the corresponding ESA server. The User has just decide how much to get. For calling sources 'by name' and storing their positions, nsb includes a sub packages 'mypycat'. Therefore a catalog is needed, which is not provided. Only a dummy file will be created and the user is free to add any source coordinates to  ~/.nsb/mypycat.txt
        
        ## Usage as commandline tool
        ```
        python -m nsb [--OPTIONS] [--FLAGS]
        python -m --help
        
        --h --help prints this help message
        
        --create CONFIGFILE
           writes a standard value configfile
        
        
        OPTIONS:
        (can all be set in config)
        
        --use CONFIGFILE:
           use a dedicated (non standard) configfile
        --t1 --time DATETIME:
           time and date for which the map should be drawn
           format: 2010/12/24 23:59:59
        --t2 --time_end DATETIME:
           needed for plots over a timestamp like --trend and --maxnsb
           format: 2010/12/24 23:59:59
        --o --output /OUTPUT/DIRECTORY/
           for saving results in different place than working directory
           filenames will be generated automatically
        --s --size IMAGESIZE:
           set the output Imagesize in Pixels
        --altaz ALT AZ:
           set the observation position in the sky manually (unit: degrees)
        --q --source SOURCENAME:
           set the observation position automatically on a source by name
           i.e.: "crab", "moon"
        --l --location LOCATION:
           The observers coordinates (Lon Lat) on earth and elevation (unit: degrees and meters)
           format: 16.5028 -23.27280 1800.0
        --hp LEVEL:
           HealPix Level for the gaia catalog to be plotted
           Integer in range [1:12]
        --g --gauss KERNELSIZE:
           Gaussian Kernel in pixel to smoothen the model images
           format: 1.5
        
        
        FLAGS:
        (to steer programs the behaviour)
        
        --verbose
           Do verbose printouts
        --mhz
           use the new and still EXPERIMENTAL model to output MHz instead of nLb
        --skymap
           create the skymap and show it on screen
        --savefits
           save the Sky-Brightness Map as *.fits file
        --maxnsb VALUE
           creates a plot of nsb vs. gained observation time.
           data points are additionally printed to console with --verbose.
           (NEEDS a --time_end, typically more than a year to be not influenced by the Seasons)
           format: 100.0
        --trend
           creates a time trend plot of nsb and source position over the given timespan
           (NEEDS a --time_end)
           Source, Sun and Moon Setting/Rising times are printed to console with --verbose
        ```
        *****************************
        # Use it as a library
        
        see the following examples:
        
        Creating Allsky and field-of-view maps, showing them on screen and saving them into FITS
        
        ```python
        from nsb import config
        from nsb.model import nsbModel
        from nsb.mypycat import mypycat
        from nsb.gaia import Gaia
        from nsb.nsbtools import makeDateString, plotMaps
        import ephem
        import matplotlib.pyplot as plt
        import astropy.io.fits as pyfits
        
        con = config.TheConfiguration()
        con.readStandardConfig()
        # or read a custom config
        # con.readConfig("my_config.cfg")
        
        #time_and_date = makeDateString("today now")
        time_and_date = ephem.Date("2019-01-26 21:29:07")
        
        mpc = mypycat()
        source = mpc.get("Crab Pulsar")
        
        gaiamap = Gaia(level=10)
        model = nsbModel(con, gaiamap, time_and_date, use_mhz=True)
        
        # draw what you want
        model.drawAllSky(size=800)
        model.drawFOV_source(source=source, fov=5.0, size=1000)
        # model.drawFOV_altaz(alt=30, az=213, fov=5.0, size=42)
        
        # show the results on screen
        plotMaps(model.allskymap.data, 'Allskymaps for %s' % (model.observer_source.date))
        plotMaps(model.fovmap.data, 'FOV for %s' % (model.observer_source.date))
        plt.show()
        
        # save fits files
        hdul = pyfits.HDUList([model.allskymap, model.fovmap])
        hdul.writeto("NSB_of_"+ makeDateString(time_and_date) + "_.fits", 'exception', True)
        ```
        
        
        
        Or get all kind of values like brightness, Alt, Az, Phase, etc. over a timespan
        
        
        ```python
        from nsb import config
        from nsb.model import nsbModel
        from nsb.mypycat import mypycat
        from nsb.gaia import Gaia
        from nsb.nsbtools import plotTimespan
        import ephem
        
        con = config.TheConfiguration()
        con.readStandardConfig()
        
        time_and_date_1 = ephem.Date("2019/05/10 12:00:00")
        time_and_date_2 = time_and_date_1 + 1.0  # plus one day (24h)
        
        mpc = mypycat()
        source = mpc.get("Eta Carinae")
        
        gaiamap = Gaia(level=7)
        model = nsbModel(con, gaiamap, time_and_date_1, time_and_date_2, threshold=400, timeresolution=15, verbose=False)
        model.setSource(source=source)
        model.calculateTimespan()
        
        # now these arrays are available and filled
        t = model.timestamps
        b = model.bright
        mp = model.moonphase
        malt = model.moonalt
        salt = model.sourcealt
        maz = model.moonaz
        saz = model.sourceaz
        sunalt = model.sunalt
        sunaz = model.sunaz
        sep = model.separation
        
        # TODO: anything you like with these values
        
        # the plot from the --trend cmdline tool
        plotTimespan(model)
        ```
        
        *******
        If there are questions, feel free to contact me: 
        
        matthias.buechele[at]fau[dot]de
        
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: POSIX :: Linux
Classifier: Topic :: Scientific/Engineering :: Astronomy
Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
Classifier: Topic :: Scientific/Engineering :: Physics
Description-Content-Type: text/markdown
