Created
June 15, 2017 22:22
-
-
Save rbiswas4/496f84437e8a34e020473d77e23d0b4c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "import numpy as np", | |
| "execution_count": 1, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "import pandas as pd", | |
| "execution_count": 2, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "import os", | |
| "execution_count": 3, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "# Change this to point to the OpSim file\nopsimhdf = os.path.join('/Users/rbiswas/data/', 'LSST', 'OpSimData', 'newOpSim.hdf')", | |
| "execution_count": 4, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "df = pd.read_hdf(opsimhdf)", | |
| "execution_count": 5, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "from opsimsummary import OpSimOutput", | |
| "execution_count": 6, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "opsout = OpSimOutput.fromOpSimDB('/Users/rbiswas/data/LSST/OpSimData/minion_1016_sqlite.db', subset='unique_all')", | |
| "execution_count": 7, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "text": " reading from database sqlite:////Users/rbiswas/data/LSST/OpSimData/minion_1016_sqlite.db\n", | |
| "name": "stdout" | |
| }, | |
| { | |
| "output_type": "stream", | |
| "text": "/Users/rbiswas/soft/LSST/DarwinX86/miniconda2/4.2.12.lsst1/lib/python2.7/site-packages/pandas/core/indexing.py:476: SettingWithCopyWarning: \nA value is trying to be set on a copy of a slice from a DataFrame.\nTry using .loc[row_indexer,col_indexer] = value instead\n\nSee the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n self.obj[item] = s\n", | |
| "name": "stderr" | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "obsHistIDs = df[np.isnan(df.skymags)].index.values", | |
| "execution_count": 11, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "pointings = opsout.summary.loc[obsHistIDs].query('airmass <=2.5')", | |
| "execution_count": 31, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "len(pointings)", | |
| "execution_count": 32, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": "205" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 32 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "pointings.head()", | |
| "execution_count": 55, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/html": "<div>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>sessionID</th>\n <th>propID</th>\n <th>fieldID</th>\n <th>fieldRA</th>\n <th>fieldDec</th>\n <th>filter</th>\n <th>expDate</th>\n <th>expMJD</th>\n <th>night</th>\n <th>visitTime</th>\n <th>...</th>\n <th>moonBright</th>\n <th>darkBright</th>\n <th>rawSeeing</th>\n <th>wind</th>\n <th>humidity</th>\n <th>slewDist</th>\n <th>slewTime</th>\n <th>fiveSigmaDepth</th>\n <th>ditheredRA</th>\n <th>ditheredDec</th>\n </tr>\n <tr>\n <th>obsHistID</th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>59403</th>\n <td>1016</td>\n <td>52</td>\n <td>1463</td>\n <td>4.589291</td>\n <td>-0.459746</td>\n <td>z</td>\n <td>6672121</td>\n <td>59657.223625</td>\n <td>77</td>\n <td>34.0</td>\n <td>...</td>\n <td>1506.470146</td>\n <td>145.900806</td>\n <td>0.796622</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.055968</td>\n <td>4.411822</td>\n <td>21.266189</td>\n <td>4.593551</td>\n <td>-0.466359</td>\n </tr>\n <tr>\n <th>59680</th>\n <td>1016</td>\n <td>52</td>\n <td>2994</td>\n <td>5.026549</td>\n <td>0.130868</td>\n <td>z</td>\n <td>6682797</td>\n <td>59657.347196</td>\n <td>77</td>\n <td>34.0</td>\n <td>...</td>\n <td>1248.205697</td>\n <td>146.421190</td>\n <td>0.835096</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.050956</td>\n <td>4.346642</td>\n <td>21.310293</td>\n <td>5.030400</td>\n <td>0.124255</td>\n </tr>\n <tr>\n <th>73347</th>\n <td>1016</td>\n <td>52</td>\n <td>775</td>\n <td>4.258966</td>\n <td>-0.790248</td>\n <td>r</td>\n <td>8216362</td>\n <td>59675.096793</td>\n <td>95</td>\n <td>34.0</td>\n <td>...</td>\n <td>1.509612</td>\n <td>145.894488</td>\n <td>0.934384</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.048916</td>\n <td>4.264651</td>\n <td>23.014633</td>\n <td>4.277956</td>\n <td>-0.793554</td>\n </tr>\n <tr>\n <th>78265</th>\n <td>1016</td>\n <td>52</td>\n <td>1101</td>\n <td>4.337251</td>\n <td>-0.626596</td>\n <td>i</td>\n <td>8649281</td>\n <td>59680.107423</td>\n <td>100</td>\n <td>34.0</td>\n <td>...</td>\n <td>346.365422</td>\n <td>146.547389</td>\n <td>0.469753</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.048077</td>\n <td>4.261755</td>\n <td>22.548176</td>\n <td>4.299545</td>\n <td>-0.626596</td>\n </tr>\n <tr>\n <th>75197</th>\n <td>1016</td>\n <td>52</td>\n <td>425</td>\n <td>4.126475</td>\n <td>-1.000363</td>\n <td>r</td>\n <td>8385217</td>\n <td>59677.051125</td>\n <td>97</td>\n <td>34.0</td>\n <td>...</td>\n <td>115.505241</td>\n <td>146.110759</td>\n <td>0.910600</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.049572</td>\n <td>4.317404</td>\n <td>22.848148</td>\n <td>4.165360</td>\n <td>-1.003669</td>\n </tr>\n </tbody>\n</table>\n<p>5 rows × 46 columns</p>\n</div>", | |
| "text/plain": " sessionID propID fieldID fieldRA fieldDec filter expDate \\\nobsHistID \n59403 1016 52 1463 4.589291 -0.459746 z 6672121 \n59680 1016 52 2994 5.026549 0.130868 z 6682797 \n73347 1016 52 775 4.258966 -0.790248 r 8216362 \n78265 1016 52 1101 4.337251 -0.626596 i 8649281 \n75197 1016 52 425 4.126475 -1.000363 r 8385217 \n\n expMJD night visitTime ... moonBright \\\nobsHistID ... \n59403 59657.223625 77 34.0 ... 1506.470146 \n59680 59657.347196 77 34.0 ... 1248.205697 \n73347 59675.096793 95 34.0 ... 1.509612 \n78265 59680.107423 100 34.0 ... 346.365422 \n75197 59677.051125 97 34.0 ... 115.505241 \n\n darkBright rawSeeing wind humidity slewDist slewTime \\\nobsHistID \n59403 145.900806 0.796622 0.0 0.0 0.055968 4.411822 \n59680 146.421190 0.835096 0.0 0.0 0.050956 4.346642 \n73347 145.894488 0.934384 0.0 0.0 0.048916 4.264651 \n78265 146.547389 0.469753 0.0 0.0 0.048077 4.261755 \n75197 146.110759 0.910600 0.0 0.0 0.049572 4.317404 \n\n fiveSigmaDepth ditheredRA ditheredDec \nobsHistID \n59403 21.266189 4.593551 -0.466359 \n59680 21.310293 5.030400 0.124255 \n73347 23.014633 4.277956 -0.793554 \n78265 22.548176 4.299545 -0.626596 \n75197 22.848148 4.165360 -1.003669 \n\n[5 rows x 46 columns]" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 55 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "%matplotlib inline\nimport matplotlib.pyplot as plt", | |
| "execution_count": 59, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "fig, ax = plt.subplots()\npointings.airmass.hist(histtype='step', lw=1)\nax.set_xlabel('airmass')\nax.set_ylabel('visits')", | |
| "execution_count": 60, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": "<matplotlib.text.Text at 0x175f47d10>" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 60 | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "image/png": "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\nakpEREQkCv8fGRSPV1dC8IIAAAAASUVORK5CYII=\n", | |
| "text/plain": "<matplotlib.figure.Figure at 0x154161290>" | |
| }, | |
| "metadata": {} | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "from lsst.sims.photUtils import BandpassDict", | |
| "execution_count": 14, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "hwbpDict, TotbpDict = BandpassDict.loadBandpassesFromFiles()", | |
| "execution_count": 15, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "from lsst.sims.skybrightness import SkyModel", | |
| "execution_count": 37, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "skymodel = SkyModel(preciseAltAz=True)", | |
| "execution_count": 38, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "pointings[['fieldRA', 'fieldDec', 'filter', 'expMJD']].head()", | |
| "execution_count": 42, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/html": "<div>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>fieldRA</th>\n <th>fieldDec</th>\n <th>filter</th>\n <th>expMJD</th>\n </tr>\n <tr>\n <th>obsHistID</th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>59403</th>\n <td>4.589291</td>\n <td>-0.459746</td>\n <td>z</td>\n <td>59657.223625</td>\n </tr>\n <tr>\n <th>59680</th>\n <td>5.026549</td>\n <td>0.130868</td>\n <td>z</td>\n <td>59657.347196</td>\n </tr>\n <tr>\n <th>73347</th>\n <td>4.258966</td>\n <td>-0.790248</td>\n <td>r</td>\n <td>59675.096793</td>\n </tr>\n <tr>\n <th>78265</th>\n <td>4.337251</td>\n <td>-0.626596</td>\n <td>i</td>\n <td>59680.107423</td>\n </tr>\n <tr>\n <th>75197</th>\n <td>4.126475</td>\n <td>-1.000363</td>\n <td>r</td>\n <td>59677.051125</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
| "text/plain": " fieldRA fieldDec filter expMJD\nobsHistID \n59403 4.589291 -0.459746 z 59657.223625\n59680 5.026549 0.130868 z 59657.347196\n73347 4.258966 -0.790248 r 59675.096793\n78265 4.337251 -0.626596 i 59680.107423\n75197 4.126475 -1.000363 r 59677.051125" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 42 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "skymodel.setRaDecMjd(4.589291, -0.459746, 59657.223625)", | |
| "execution_count": 52, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "skymodel.returnMags(hwbpDict)", | |
| "execution_count": 53, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": "{'g': array([ nan]),\n 'i': array([ nan]),\n 'r': array([ nan]),\n 'u': array([ nan]),\n 'y': array([ nan]),\n 'z': array([ nan])}" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 53 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "skymodel.returnWaveSpec()", | |
| "execution_count": 54, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": "(array([ 300. , 300.1, 300.2, ..., 1999.8, 1999.9, 2000. ]),\n array([[ nan, nan, nan, ..., nan, nan, nan]]))" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 54 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "# How it usually works for me for pointings other than these 205 ", | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "skymodel.setRaDecMjd(0.925, -0.4789, 59580.14)", | |
| "execution_count": 49, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "skymodel.returnWaveSpec()", | |
| "execution_count": 50, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": "(array([ 300. , 300.1, 300.2, ..., 1999.8, 1999.9, 2000. ]),\n array([[ 6.68041555e-19, 4.60766642e-18, 4.72274672e-18, ...,\n 6.23963220e-16, 2.16958882e-16, 8.11758447e-17]]))" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 50 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "skymodel.returnMags(bandpasses=hwbpDict)", | |
| "execution_count": 51, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": "{'g': array([ 22.25374335]),\n 'i': array([ 20.31395037]),\n 'r': array([ 21.260975]),\n 'u': array([ 22.77388112]),\n 'y': array([ 18.50654798]),\n 'z': array([ 19.34471914])}" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 51 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": {}, | |
| "cell_type": "markdown", | |
| "source": "# scratch" | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "## How I am trying to calculate this", | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "import obscond", | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": true | |
| }, | |
| "cell_type": "code", | |
| "source": "skycalc = obscond.SkyCalculations(photparams=\"LSST\", hwBandpassDict=hwbpDict)", | |
| "execution_count": 16, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "skycalc.skymag('r', 0.925, -0.4789, 59580.14)", | |
| "execution_count": 33, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": "21.260974999286908" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 33 | |
| } | |
| ] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "x = skycalc.calculatePointings(pointings)", | |
| "execution_count": 34, | |
| "outputs": [] | |
| }, | |
| { | |
| "metadata": { | |
| "trusted": true, | |
| "collapsed": false | |
| }, | |
| "cell_type": "code", | |
| "source": "x.dropna()", | |
| "execution_count": 36, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/html": "<div>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>filtSkyBrightness</th>\n <th>fiveSigmaDepth</th>\n </tr>\n <tr>\n <th>obsHistID</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n </tbody>\n</table>\n</div>", | |
| "text/plain": "Empty DataFrame\nColumns: [filtSkyBrightness, fiveSigmaDepth]\nIndex: []" | |
| }, | |
| "metadata": {}, | |
| "execution_count": 36 | |
| } | |
| ] | |
| } | |
| ], | |
| "metadata": { | |
| "kernelspec": { | |
| "name": "python2", | |
| "display_name": "Python [default]", | |
| "language": "python" | |
| }, | |
| "anaconda-cloud": {}, | |
| "language_info": { | |
| "mimetype": "text/x-python", | |
| "nbconvert_exporter": "python", | |
| "name": "python", | |
| "pygments_lexer": "ipython2", | |
| "version": "2.7.12", | |
| "file_extension": ".py", | |
| "codemirror_mode": { | |
| "version": 2, | |
| "name": "ipython" | |
| } | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 1 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment