PAN015: Wildwood Institute for STEM Research and Development, WISRD (Wildwood School)

Yesterday we completed the new version of the head unit PCB and passed the last tests. We also used the UNO and documented the steps, so if anyone else would like to use those images to clarify the instructions we would love to provide our resources. We are moving on to the control box board, and have already made substantial progress(currently half way in terms of step numbers).

We are having some trouble with the NUC setup and could use some help. We have done all of the setup steps, however we are unable to run the pytest. When I enter the final command, “sudo pytest” it sends the error: “sudo: pytest: command not found”.

I tried uninstalling and reinstalling POCS, but this did not fix the issue. Upon closer review I saw that when the install dependencies command was run the install-helper-functions.sh script was giving the error, “Line 18: printf: ‘;’: invalid format character”. I tried editing that specific file to fix it, however I was unsuccessful. There were also errors in many other scripts, and I am hopeful that the install-helper-functions.sh script caused them.

I also have the terminal input and output saved as a text file if anyone is interested in using that to see where I went wrong.

It shouldn’t be necessary to use “sudo” before pytest. In fact, that likely will prevent pytest from being found, as you discovered.

Please confirm that you have installed miniconda (Anaconda python distribution, but without so much stuff).

And please send more details about the errors you encountered. I wrote the install scripts, so would like to get them fixed ASAP so that others don’t run into the same problem.

Because of the amount of errors, I would like to get you the text file before transferring all of that information onto the forum. Do you have a google account or an email I can use to send you the file since the forum currently doesn’t allow for text files to be uploaded?

@james.synge

Quick Update:
We have solved the previous error but encountered a new one.

We found that because of multiple attempts at installing the POCS software copies of some libraries(including miniconda) and py scripts were created, leading to the install-helper-functions.sh script not knowing how to handle some circumstances. We solved this by wiping our drive and reinstalling our OS and then POCS.

Things were going well but when the install-dependencies.sh script was run, The following error occurred after the script successfully ran and avoided the error we had previously encountered:
Command “python setup.py egg_info” failed with error code 1 in /tmp/pip-install-e8n_jst_/astroscrappy/
The strange thing is that this file does not exist on our computer, so I wasn’t able to investigate that file any further. I don’t know what error code 1 means in this context, but I would assume that it occurs when a file that doesn’t exist is asked to do something. I looked into the setup.py script and found that two lines of code were blocked out into text, which if unblocked would treat everything in scripts as a script to be installed. I’m not sure if enabling that would fix the issue and create the file we need, or make things much worse.

Additionally, we are now using Ubuntu 18.04, which another team had issues with. If we can’t find a solution in a few weeks, we will probably move to a different version of Unbuntu to isolate any errors more effectively.

Late Update:
We have fixed our NUC problems and have identified an issue with the download process. All of our errors were caused by a bad download link to astrometry. There has been an update and(if I remember correctly) the link that was used appears to download the most recent astrometry version, not the specific one which the system expects.

Currently, we are very close to finishing our unit. We are waiting on a special part to make a cable to connect to our mount, but will then proceed with some final tests before deployment.

1 Like

We are back in action after summer vacation and have run into a problem initializing the pocs shell where it cannot find the cameras. We have already taken images using both the take_pic.sh and take_bias.sh scripts. We are using canon rebel sl1’s in our unit. Anyone have a potential fix or ideas on where to begin troubleshooting?

Here is the log of the POCS shell:

I0828 15:38:02.929                 logger.py:274] ****************************** Starting PanLogger ******************************

D0828 15:38:10.644               __init__.py:080] simulator_names = power

D0828 15:38:10.644               __init__.py:096] Camera config: {'auto_detect': True, 'primary': '14d3bd', 'devices': [{'model': 'canon_gphoto2'}, {'model': 'canon_gphoto2'}]}

D0828 15:38:10.644               __init__.py:104] Auto-detecting ports for cameras

D0828 15:38:10.729               __init__.py:114] Detected Ports: ['usb:001,009', 'usb:001,007']

D0828 15:38:10.729               __init__.py:166] Creating camera: canon_gphoto2

D0828 15:38:10.734               __init__.py:170] Camera module: <module 'pocs.camera.canon_gphoto2' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/camera/canon_gphoto2.py'>

E0828 15:38:10.734               __init__.py:182] Cannot find camera type: canon_gphoto2 Can't instantiate abstract class Camera with abstract methods _readout, _start_exposure

D0828 15:38:10.734               __init__.py:166] Creating camera: canon_gphoto2

D0828 15:38:10.735               __init__.py:170] Camera module: <module 'pocs.camera.canon_gphoto2' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/camera/canon_gphoto2.py'>

E0828 15:38:10.735               __init__.py:182] Cannot find camera type: canon_gphoto2 Can't instantiate abstract class Camera with abstract methods _readout, _start_exposure

E0828 15:38:10.735                  error.py:016] CameraNotFound: No cameras available. Exiting.

Hi @zacharyt,

Glad to have you back after the summer break!

From the error messages it looks like your software might just be out of date. From the $POCS directory you can do a

git pull

and it should bring you up to date. The errors of the missing _readout and _start_exposure were fixed a while back.

If you are having issues let me know and we can connect and get it solved.

Hi @wtgee,

Thanks for the advice and input about how to solve the software issue!

Unfortunately, we are still encountering the same problem even after doing what you advised. Would you or anybody else have any other ideas about troubleshooting or how to go about this?

Hi @Brown_Taalib-Din,

Are you getting the exact same errors after a software upgrade? If they are different please post and we can try to figure out otherwise let me know and I’ll see if I can duplicate them somehow.

@wtgee
We are getting the same errors before and after the software update. Also, if it would be helpful to use something like TeamViewer to give you remote access to try and fix the issue we can set that up as well. Thanks for helping us out.

Thanks @zacharyt and @Brown_Taalib-Din. Was there an error when you did the git pull? That specific fix is about four months old so the code should definitely be there. It was merged in https://github.com/panoptes/POCS/pull/831

What time of day are you usually working on the unit? Happy to do some kind of remote desktop, but I’m down in Australia so we would just need to coordinate the times.

Hi Wilfred!

I, along with the rest of my team, are trying to get onto the Slack platform, but I need the invitation in order to get onto it. How can I get this invitation or is there another way to get onto the platform? Please let me know. Thanks!

Also @wtgee
We are available to do remote desktop access on Wednesday at 12:55 PST(GMT -7), 3:45 on Thursday, and at 2:10 on Friday. Let us know if any of these times work for you and if not when your available. Also, we need to install a remote access program, so if there is a program that is easier for you let us know. We also have access to slack.

We would love to chat and clear up some coding issues. We will meet up at your convenience. We have SSH set up so you can poke around and help with the problem. I am on Skype with a handle of Coolharleydude.

We hope to hear from you soon. We are -7 he GET until Nov 3 when daylight saving time kicks in. My text # is 310 985 0277 and email is jwise@wildwood.org.

Thanks,

Joe

We have made some progress on getting setup_pocs to run, but still need some help. I don’t have very much experience with bash or python, so let me known if I’ve done anything wrong. Also, I’ve noticed @wtgee’s new docker installation method, and we are happy to switch if that method is more time efficient than having to trouble shoot our current version.

I found that some of the issues we were having were similar to the ones experienced by PAN005 and PAN012, so we decided to reinstall the software with the instructions Aru outlines here. The install process worked, skipped previous errors we encounter with astroscrappy, and downloaded files it hadn’t in the previous install. I created pocs_local.yaml and added information to it before moving on to setting up the pocs_shell.

I successfully entered the pocs_shell, however I encountered the same error as before when running setup_pocs. After much unsuccessful trouble shooting, I accidentally unplugged the USB hub in the head box. I then plugged it back into a different port, located on the front of the intel NUC. Later, I tried running setup_pocs in the pocs_shell again, and found that this change magically allowed the unit to connect with the cameras and create them as objects. Sadly, the setup_pocs command failed later on.

By entering ls -la /dev/bus/usb/001/*, I noticed that the camera USB ports had new permissions. I then added user panoptes to dialout, and did sudo setfacl -m u:panoptes:rwx /dev/bus/usb/001/* and sudo setfacl -m u:panoptes:rwx /dev/bus/usb/002/*, to make sure USB permissions would not be an issue(I think).

I’ve split this post into two segments because the log file is incredibly long.

The pocs_shell-all.log’s new output is:

D1012 03:47:13.978               __init__.py:276] matplotlib data path: /var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/matplotlib/mpl-data
D1012 03:47:13.980               __init__.py:1009] loaded rc file /var/panoptes/POCS/matplotlibrc
D1012 03:47:13.986               __init__.py:1646] matplotlib version 3.1.1
D1012 03:47:13.986               __init__.py:1647] interactive is False
D1012 03:47:13.987               __init__.py:1648] platform is linux
D1012 03:47:13.987               __init__.py:1649] loaded modules: ['builtins', 'sys', '_frozen_importlib', '_imp', '_warnings', '_thread', '_weakref', '_frozen_importlib_external', '_io', 'marshal', 'posix', 'zipimport', 'encodings', 'codecs', '_codecs', 'encodings.aliases', 'encodings.utf_8', '_signal', '__main__', 'encodings.latin_1', 'io', 'abc', '_weakrefset', 'site', 'os', 'errno', 'stat', '_stat', 'posixpath', 'genericpath', 'os.path', '_collections_abc', '_sitebuiltins', 'sysconfig', '_sysconfigdata_m_linux_x86_64-linux-gnu', '_bootlocale', '_locale', 'types', 'functools', '_functools', 'collections', 'operator', '_operator', 'keyword', 'heapq', '_heapq', 'itertools', 'reprlib', '_collections', 'weakref', 'collections.abc', 'importlib', 'importlib._bootstrap', 'importlib._bootstrap_external', 'warnings', 'importlib.util', 'importlib.abc', 'importlib.machinery', 'contextlib', 'google', 'google.cloud', 'google.logging', 'mpl_toolkits', 'ruamel', 'encodings.cp437', 'readline', 'time', 'zmq', 'ctypes', '_ctypes', 'struct', '_struct', 'ctypes._endian', 'platform', 're', 'enum', 'sre_compile', '_sre', 'sre_parse', 'sre_constants', 'copyreg', 'subprocess', 'signal', '_posixsubprocess', 'select', 'selectors', 'math', 'threading', 'traceback', 'linecache', 'tokenize', 'token', 'zmq.backend', 'zmq.backend.select', 'zmq.backend.cython', 'zmq.backend.cython.constants', 'cython_runtime', 'zmq.backend.cython.error', '_cython_0_29_5', 'zmq.backend.cython.message', 'zmq.error', 'zmq.backend.cython.context', 'zmq.backend.cython.socket', 'copy', 'random', 'hashlib', '_hashlib', '_blake2', '_sha3', 'bisect', '_bisect', '_random', 'pickle', '_compat_pickle', '_pickle', 'zmq.backend.cython.utils', 'zmq.backend.cython._poll', 'zmq.backend.cython._version', 'zmq.backend.cython._device', 'zmq.sugar', 'zmq.sugar.constants', 'zmq.utils', 'zmq.utils.constant_names', 'zmq.sugar.context', 'atexit', 'zmq.sugar.attrsettr', 'zmq.sugar.socket', 'zmq.sugar.poll', 'zmq.utils.jsonapi', 'zmq.utils.strtypes', 'json', 'json.decoder', 'json.scanner', '_json', 'json.encoder', 'zmq.sugar.frame', 'zmq.sugar.tracker', 'zmq.sugar.version', 'zmq.sugar.stopwatch', 'cmd', 'string', '_string', 'pprint', 'astropy', 'astropy.version', '__future__', 'datetime', '_datetime', 'numpy', 'numpy._globals', 'numpy.__config__', 'numpy.version', 'numpy._distributor_init', 'mkl', 'mkl._mklinit', 'mkl._py_mkl_service', 'six', 'numpy.core', 'numpy.core.info', 'numpy.core.multiarray', 'numpy.core.overrides', 'textwrap', 'numpy.core._multiarray_umath', 'numpy.compat', 'numpy.compat._inspect', 'numpy.compat.py3k', 'pathlib', 'fnmatch', 'ntpath', 'urllib', 'urllib.parse', 'numpy.core.umath', 'numpy.core.numerictypes', 'numbers', 'numpy.core._string_helpers', 'numpy.core._type_aliases', 'numpy.core._dtype', 'numpy.core.numeric', 'numpy.core._exceptions', 'numpy.core._asarray', 'numpy.core._ufunc_config', 'numpy.core.fromnumeric', 'numpy.core._methods', 'numpy.core.arrayprint', 'numpy.core.defchararray', 'numpy.core.records', 'numpy.core.memmap', 'numpy.core.function_base', 'numpy.core.machar', 'numpy.core.getlimits', 'numpy.core.shape_base', 'numpy.core.einsumfunc', 'numpy.core._add_newdocs', 'numpy.core._multiarray_tests', 'numpy.core._dtype_ctypes', 'numpy.core._internal', 'numpy._pytesttester', 'numpy.lib', 'numpy.lib.info', 'numpy.lib.type_check', 'numpy.lib.ufunclike', 'numpy.lib.index_tricks', 'numpy.matrixlib', 'numpy.matrixlib.defmatrix', 'ast', '_ast', 'numpy.linalg', 'numpy.linalg.info', 'numpy.linalg.linalg', 'numpy.lib.twodim_base', 'numpy.linalg.lapack_lite', 'numpy.linalg._umath_linalg', 'numpy.lib.function_base', 'numpy.lib.histograms', 'numpy.lib.stride_tricks', 'numpy.lib.mixins', 'numpy.lib.nanfunctions', 'numpy.lib.shape_base', 'numpy.lib.scimath', 'numpy.lib.polynomial', 'numpy.lib.utils', 'numpy.lib.arraysetops', 'numpy.lib.npyio', 'numpy.lib.format', 'numpy.lib._datasource', 'shutil', 'zlib', 'bz2', '_compression', '_bz2', 'lzma', '_lzma', 'pwd', 'grp', 'numpy.lib._iotools', 'numpy.lib.financial', 'decimal', '_decimal', 'numpy.lib.arrayterator', 'numpy.lib.arraypad', 'numpy.lib._version', 'numpy.fft', 'numpy.fft.info', 'numpy.fft.pocketfft', 'numpy.fft.pocketfft_internal', 'numpy.fft.helper', 'mkl_fft', 'mkl_fft._pydfti', '_cython_0_29_12', 'mkl_fft._version', 'mkl_fft._numpy_fft', 'mkl_fft._float_utils', 'numpy.polynomial', 'numpy.polynomial.polynomial', 'numpy.polynomial.polyutils', 'numpy.polynomial._polybase', 'numpy.polynomial.chebyshev', 'numpy.polynomial.legendre', 'numpy.polynomial.hermite', 'numpy.polynomial.hermite_e', 'numpy.polynomial.laguerre', 'numpy.random', 'numpy.random._pickle', 'numpy.random.mtrand', 'numpy.random.common', 'numpy.random.bounded_integers', 'numpy.random.mt19937', 'numpy.random.bit_generator', '_cython_0_29_13', 'secrets', 'base64', 'binascii', 'hmac', 'numpy.random.entropy', 'numpy.random.philox', 'numpy.random.pcg64', 'numpy.random.sfc64', 'numpy.random.generator', 'numpy.ctypeslib', 'numpy.ma', 'numpy.ma.core', 'numpy.ma.extras', 'numpy.testing', 'unittest', 'unittest.result', 'unittest.util', 'unittest.case', 'difflib', 'logging', 'unittest.suite', 'unittest.loader', 'unittest.main', 'argparse', 'gettext', 'locale', 'unittest.runner', 'unittest.signals', 'numpy.testing._private', 'numpy.testing._private.utils', 'gc', 'tempfile', 'numpy.testing._private.decorators', 'numpy.testing._private.nosetester', 'astropy.utils', 'astropy.utils.codegen', 'inspect', 'dis', 'opcode', '_opcode', 'astropy.utils.introspection', 'distutils', 'distutils.version', 'astropy.utils.decorators', 'astropy.utils.exceptions', 'astropy.utils.misc', 'unicodedata', 'astropy.config', 'astropy.config.paths', 'astropy.config.configuration', 'astropy.extern', 'astropy.extern.configobj', 'astropy.extern.configobj.configobj', 'astropy.extern.configobj.validate', 'astropy.config.affiliated', 'astropy.tests', 'astropy.tests.runner', 'glob', 'shlex', 'astropy.logger', 'astropy.utils._compiler', 'astropy.units', 'astropy.units.core', 'astropy.units.utils', 'fractions', 'astropy.units.format', 'astropy.units.format.base', 'astropy.units.format.generic', 'astropy.units.format.utils', 'astropy.units.format.cds', 'astropy.units.format.console', 'astropy.units.format.fits', 'astropy.units.format.latex', 'astropy.units.format.ogip', 'astropy.units.format.unicode_format', 'astropy.units.format.vounit', 'astropy.units.quantity', 'astropy.utils.compat', 'astropy.utils.compat.misc', 'astropy.utils.compat.numpycompat', 'astropy.utils.data_info', 'astropy.utils.metadata', 'astropy.units.quantity_helper', 'astropy.units.quantity_helper.converters', 'astropy.units.quantity_helper.helpers', 'astropy.units.quantity_helper.scipy_special', 'astropy.units.quantity_helper.erfa', 'astropy.units.si', 'astropy.constants', 'astropy.constants.constant', 'astropy.constants.si', 'astropy.constants.codata2014', 'astropy.constants.iau2015', 'astropy.constants.cgs', 'astropy.constants.utils', 'astropy.units.cgs', 'astropy.units.astrophys', 'astropy.extern.ply', 'astropy.extern.ply.yacc', 'astropy.units.format.generic_parsetab', 'astropy.extern.ply.lex', 'astropy.units.format.generic_lextab', 'astropy.units.photometric', 'astropy.units.function', 'astropy.units.function.core', 'astropy.units.function.logarithmic', 'astropy.units.function.units', 'astropy.units.function.mixin', 'astropy.units.physical', 'astropy.units.imperial', 'astropy.units.equivalencies', 'astropy.units.function.magnitude_zero_points', 'astropy.units.decorators', 'astropy.coordinates', 'astropy.coordinates.errors', 'astropy.coordinates.angles', 'astropy.coordinates.angle_utilities', 'astropy.coordinates.baseframe', 'astropy.coordinates.transformations', 'astropy.coordinates.representation', 'astropy.coordinates.distances', 'astropy._erfa', 'astropy._erfa.core', 'astropy._erfa.ufunc', 'astropy.coordinates.matrix_utilities', 'astropy.coordinates.attributes', 'astropy.coordinates.earth', 'socket', '_socket', 'urllib.request', 'email', 'http', 'http.client', 'email.parser', 'email.feedparser', 'email.errors', 'email._policybase', 'email.header', 'email.quoprimime', 'email.base64mime', 'email.charset', 'email.encoders', 'quopri', 'email.utils', 'email._parseaddr', 'calendar', 'email.message', 'uu', 'email._encoded_words', 'email.iterators', 'ssl', 'ipaddress', '_ssl', 'urllib.error', 'urllib.response', 'astropy.utils.data', 'shelve', 'astropy.coordinates.sites', 'astropy.coordinates.builtin_frames', 'astropy.coordinates.builtin_frames.baseradec', 'astropy.coordinates.builtin_frames.icrs', 'astropy.coordinates.builtin_frames.fk5', 'astropy.coordinates.earth_orientation', 'astropy.time', 'astropy.time.formats', 'astropy.time.utils', 'astropy.time.core', 'astropy.extern._strptime', '_strptime', 'astropy.coordinates.builtin_frames.utils', 'astropy.utils.iers', 'astropy.utils.iers.iers', 'astropy.table', 'astropy.table.column', 'astropy.utils.console', 'multiprocessing', 'multiprocessing.context', 'multiprocessing.process', 'multiprocessing.reduction', 'array', '__mp_main__', 'fcntl', 'termios', 'astropy.table.groups', 'astropy.table.index', 'astropy.table.bst', 'astropy.table.sorted_array', 'astropy.table.pprint', 'astropy.table.np_utils', 'astropy.table._np_utils', 'numpy.lib.recfunctions', 'numpy.ma.mrecords', 'astropy.table._column_mixins', 'astropy.table.table', 'astropy.io', 'astropy.io.registry', 'astropy.table.row', 'astropy.table.info', 'astropy.table.connect', 'astropy.table.operations', 'astropy.table.soco', 'astropy.table.serialize', 'astropy.table.jsviewer', 'astropy.io.ascii', 'astropy.io.ascii.core', 'csv', '_csv', 'astropy.io.ascii.connect', 'astropy.io.ascii.docs', 'astropy.io.ascii.basic', 'astropy.io.ascii.fastbasic', 'astropy.io.ascii.cparser', '_cython_0_29_10', 'mmap', 'queue', 'astropy.io.ascii.cds', 'astropy.io.ascii.fixedwidth', 'astropy.io.ascii.ecsv', 'astropy.table.meta', 'astropy.io.ascii.latex', 'astropy.io.ascii.html', 'astropy.utils.xml', 'astropy.utils.xml.writer', 'astropy.utils.xml._iterparser', 'astropy.io.ascii.ipac', 'astropy.io.ascii.daophot', 'astropy.io.ascii.misc', 'astropy.io.ascii.sextractor', 'astropy.io.ascii.rst', 'astropy.io.ascii.ui', 'yaml', 'yaml.error', 'yaml.tokens', 'yaml.events', 'yaml.nodes', 'yaml.loader', 'yaml.reader', 'yaml.scanner', 'yaml.parser', 'yaml.composer', 'yaml.constructor', 'yaml.resolver', 'yaml.dumper', 'yaml.emitter', 'yaml.serializer', 'yaml.representer', 'astropy.io.fits', 'astropy.io.fits.card', 'astropy.io.fits.util', 'gzip', 'astropy.io.fits.verify', 'astropy.io.fits.column', 'astropy.io.fits.convenience', 'astropy.io.fits.diff', 'astropy.io.fits.header', 'astropy.io.fits.file', 'zipfile', 'astropy.io.fits._utils', 'astropy.io.fits.hdu', 'astropy.io.fits.hdu.base', 'astropy.io.fits.hdu.compressed', 'astropy.io.fits.hdu.image', 'astropy.io.fits.hdu.table', 'astropy.io.fits.fitsrec', 'astropy.io.fits.compression', 'astropy.io.fits.hdu.groups', 'astropy.io.fits.hdu.hdulist', 'astropy.io.fits.hdu.nonstandard', 'astropy.io.fits.hdu.streaming', 'astropy.utils.diff', 'astropy.io.fits.connect', 'astropy.io.misc', 'astropy.io.misc.pickle_helpers', 'astropy.io.misc.connect', 'astropy.io.misc.hdf5', 'astropy.io.votable', 'astropy.io.votable.table', 'astropy.io.votable.exceptions', 'astropy.io.votable.tree', 'astropy.utils.collections', 'astropy.io.votable.converters', 'astropy.io.votable.ucd', 'astropy.io.votable.util', 'astropy.io.votable.xmlutil', 'astropy.utils.xml.check', 'astropy.utils.xml.validate', 'astropy.io.votable.tablewriter', 'astropy.utils.xml.iterparser', 'astropy.io.votable.connect', 'astropy.io.misc.asdf', 'astropy.io.misc.asdf.connect', 'astropy.io.misc.pandas', 'astropy.io.misc.pandas.connect', 'astropy.coordinates.builtin_frames.fk4', 'astropy.coordinates.builtin_frames.galactic', 'astropy.coordinates.builtin_frames.galactocentric', 'astropy.coordinates.builtin_frames.lsr', 'astropy.coordinates.builtin_frames.supergalactic', 'astropy.coordinates.builtin_frames.altaz', 'astropy.coordinates.builtin_frames.gcrs', 'astropy.coordinates.builtin_frames.cirs', 'astropy.coordinates.builtin_frames.itrs', 'astropy.coordinates.builtin_frames.hcrs', 'astropy.coordinates.builtin_frames.ecliptic', 'astropy.coordinates.builtin_frames.skyoffset', 'astropy.coordinates.builtin_frames.icrs_fk5_transforms', 'astropy.coordinates.builtin_frames.fk4_fk5_transforms', 'astropy.coordinates.builtin_frames.galactic_transforms', 'astropy.coordinates.builtin_frames.supergalactic_transforms', 'astropy.coordinates.builtin_frames.icrs_cirs_transforms', 'astropy.coordinates.builtin_frames.cirs_observed_transforms', 'astropy.coordinates.builtin_frames.intermediate_rotation_transforms', 'astropy.coordinates.builtin_frames.ecliptic_transforms', 'astropy.coordinates.name_resolve', 'astropy.coordinates.sky_coordinate', 'astropy.wcs', 'astropy.wcs.wcs', 'astropy.wcs.docstrings', 'astropy.wcs._wcs', 'astropy.wcs.wcsapi', 'astropy.wcs.wcsapi.low_level_api', 'astropy.wcs.wcsapi.high_level_api', 'astropy.wcs.wcsapi.utils', 'astropy.wcs.wcsapi.high_level_wcs_wrapper', 'astropy.wcs.wcsapi.sliced_low_level_wcs', 'astropy.wcs.wcsapi.fitswcs', 'astropy.wcs.utils', 'astropy.coordinates.sky_coordinate_parsers', 'astropy.utils.state', 'astropy.coordinates.matching', 'astropy.coordinates.funcs', 'astropy.coordinates.calculation', 'astropy.coordinates.solar_system', 'astropy.coordinates.orbital_elements', 'pocs', 'pocs.version', 'pocs.hardware', 'pocs.core', 'pocs.base', 'pocs.utils', 'pocs.utils.config', 'pocs.utils.database', 'pymongo', 'pymongo.collection', 'bson', 'uuid', 'ctypes.util', 'bson.binary', 'bson.py3compat', 'bson.code', 'bson.codec_options', 'bson.dbref', 'bson.son', 'bson.decimal128', 'bson.errors', 'bson.int64', 'bson.max_key', 'bson.min_key', 'bson.objectid', 'bson.tz_util', 'bson.regex', 'bson.timestamp', 'bson._cbson', 'bson.raw_bson', 'pymongo.common', 'pymongo.auth', 'pymongo.errors', 'pymongo.saslprep', 'stringprep', 'pymongo.compression_support', 'pymongo.monitoring', 'pymongo.helpers', 'pymongo.driver_info', 'pymongo.encryption_options', 'pymongo.read_concern', 'pymongo.read_preferences', 'pymongo.max_staleness_selectors', 'pymongo.server_type', 'pymongo.server_selectors', 'pymongo.ssl_support', 'certifi', 'certifi.core', 'pymongo.write_concern', 'pymongo.message', 'pymongo._cmessage', 'pymongo.aggregation', 'pymongo.collation', 'pymongo.bulk', 'pymongo.client_session', 'pymongo.monotonic', 'pymongo.command_cursor', 'pymongo.change_stream', 'pymongo.cursor', 'pymongo.operations', 'pymongo.results', 'pymongo.mongo_client', 'pymongo.database', 'pymongo.son_manipulator', 'pymongo.periodic_executor', 'pymongo.uri_parser', 'pymongo.srv_resolver', 'pymongo.client_options', 'pymongo.pool', 'pymongo.thread_util', 'pymongo.ismaster', 'pymongo.network', 'pymongo.ssl_match_hostname', 'encodings.idna', 'pymongo.cursor_manager', 'pymongo.topology', 'pymongo.topology_description', 'pymongo.server_description', 'pymongo.monitor', 'pymongo.server', 'pymongo.response', 'pymongo.settings', 'pymongo.mongo_replica_set_client', 'pocs.utils.serializers', 'bson.json_util', 'pocs.utils.logger', 'logging.config', 'logging.handlers', 'socketserver', 'pocs.observatory', 'astroplan', 'astroplan._astropy_init', 'astroplan.version', 'astroplan.utils', 'astroplan.exceptions', 'astroplan.observer', 'astropy.extern.six', 'imp', 'IPython', 'IPython.core', 'IPython.core.getipython', 'IPython.core.release', 'IPython.core.application', 'traitlets', 'traitlets.traitlets', 'traitlets.utils', 'traitlets.utils.getargspec', 'traitlets.utils.importstring', 'ipython_genutils', 'ipython_genutils._version', 'ipython_genutils.py3compat', 'ipython_genutils.encoding', 'traitlets.utils.sentinel', 'traitlets.utils.bunch', 'traitlets._version', 'traitlets.config', 'traitlets.config.application', 'decorator', 'traitlets.config.configurable', 'traitlets.config.loader', 'ipython_genutils.path', 'ipython_genutils.text', 'ipython_genutils.importstring', 'IPython.core.crashhandler', 'IPython.core.ultratb', 'pydoc', 'pkgutil', 'IPython.core.debugger', 'bdb', 'IPython.utils', 'IPython.utils.PyColorize', 'IPython.utils.coloransi', 'IPython.utils.ipstruct', 'IPython.utils.colorable', 'pygments', 'pygments.util', 'IPython.utils.py3compat', 'IPython.utils.encoding', 'IPython.core.excolors', 'IPython.testing', 'IPython.testing.skipdoctest', 'pdb', 'code', 'codeop', 'IPython.core.display_trap', 'IPython.utils.path', 'IPython.utils.process', 'IPython.utils._process_posix', 'pexpect', 'pexpect.exceptions', 'pexpect.utils', 'pexpect.expect', 'pexpect.pty_spawn', 'pty', 'tty', 'ptyprocess', 'ptyprocess.ptyprocess', 'resource', 'ptyprocess.util', 'pexpect.spawnbase', 'pexpect.run', 'IPython.utils._process_common', 'IPython.utils.decorators', 'IPython.utils.data', 'IPython.utils.terminal', 'IPython.utils.sysinfo', 'IPython.utils._sysinfo', 'IPython.core.profiledir', 'IPython.paths', 'IPython.utils.importstring', 'IPython.terminal', 'IPython.terminal.embed', 'IPython.core.compilerop', 'IPython.core.magic_arguments', 'IPython.core.error', 'IPython.utils.text', 'IPython.core.magic', 'getopt', 'IPython.core.oinspect', 'IPython.core.page', 'IPython.core.display', 'mimetypes', 'IPython.lib', 'IPython.lib.security', 'getpass', 'IPython.lib.pretty', 'IPython.utils.openpy', 'IPython.utils.dir2', 'IPython.utils.wildcard', 'pygments.lexers', 'pygments.lexers._mapping', 'pygments.modeline', 'pygments.plugin', 'pygments.lexers.python', 'pygments.lexer', 'pygments.filter', 'pygments.filters', 'pygments.token', 'pygments.regexopt', 'pygments.unistring', 'pygments.formatters', 'pygments.formatters._mapping', 'pygments.formatters.html', 'pygments.formatter', 'pygments.styles', 'IPython.core.inputtransformer2', 'typing', 'typing.io', 'typing.re', 'IPython.core.interactiveshell', 'asyncio', 'asyncio.base_events', 'concurrent', 'concurrent.futures', 'concurrent.futures._base', 'concurrent.futures.process', 'multiprocessing.connection', '_multiprocessing', 'multiprocessing.util', 'concurrent.futures.thread', 'asyncio.compat', 'asyncio.coroutines', 'asyncio.constants', 'asyncio.events', 'asyncio.base_futures', 'asyncio.log', 'asyncio.futures', 'asyncio.base_tasks', '_asyncio', 'asyncio.tasks', 'asyncio.locks', 'asyncio.protocols', 'asyncio.queues', 'asyncio.streams', 'asyncio.subprocess', 'asyncio.transports', 'asyncio.unix_events', 'asyncio.base_subprocess', 'asyncio.selector_events', 'asyncio.sslproto', 'runpy', 'pickleshare', 'IPython.core.prefilter', 'IPython.core.autocall', 'IPython.core.macro', 'IPython.core.splitinput', 'IPython.core.alias', 'IPython.core.builtin_trap', 'IPython.core.events', 'backcall', 'backcall.backcall', 'IPython.core.displayhook', 'IPython.core.displaypub', 'IPython.core.extensions', 'IPython.core.formatters', 'IPython.utils.sentinel', 'IPython.core.history', 'sqlite3', 'sqlite3.dbapi2', '_sqlite3', 'IPython.core.logger', 'IPython.core.payload', 'IPython.core.usage', 'IPython.display', 'IPython.lib.display', 'html', 'html.entities', 'IPython.utils.io', 'IPython.utils.capture', 'IPython.utils.strdispatch', 'IPython.core.hooks', 'IPython.utils.syspathcontext', 'IPython.utils.tempdir', 'IPython.utils.contexts', 'IPython.core.async_helpers', 'IPython.terminal.interactiveshell', 'prompt_toolkit', 'prompt_toolkit.application', 'prompt_toolkit.application.application', 'prompt_toolkit.buffer', 'six.moves', 'prompt_toolkit.application.current', 'prompt_toolkit.eventloop', 'prompt_toolkit.eventloop.async_generator', 'six.moves.queue', 'prompt_toolkit.eventloop.coroutine', 'prompt_toolkit.eventloop.defaults', 'prompt_toolkit.utils', 'wcwidth', 'wcwidth.wcwidth', 'wcwidth.table_wide', 'wcwidth.table_zero', 'prompt_toolkit.cache', 'prompt_toolkit.eventloop.base', 'prompt_toolkit.log', 'prompt_toolkit.eventloop.future', 'prompt_toolkit.eventloop.context', 'prompt_toolkit.eventloop.event', 'prompt_toolkit.application.run_in_terminal', 'prompt_toolkit.auto_suggest', 'prompt_toolkit.filters', 'prompt_toolkit.filters.app', 'prompt_toolkit.enums', 'prompt_toolkit.filters.base', 'prompt_toolkit.filters.cli', 'prompt_toolkit.filters.utils', 'prompt_toolkit.clipboard', 'prompt_toolkit.clipboard.base', 'prompt_toolkit.selection', 'prompt_toolkit.clipboard.in_memory', 'prompt_toolkit.completion', 'prompt_toolkit.completion.base', 'prompt_toolkit.completion.filesystem', 'prompt_toolkit.completion.fuzzy_completer', 'prompt_toolkit.document', 'prompt_toolkit.completion.word_completer', 'prompt_toolkit.history', 'prompt_toolkit.search', 'prompt_toolkit.key_binding', 'prompt_toolkit.key_binding.key_bindings', 'prompt_toolkit.keys', 'prompt_toolkit.key_binding.vi_state', 'prompt_toolkit.validation', 'prompt_toolkit.input', 'prompt_toolkit.input.base', 'prompt_toolkit.input.defaults', 'prompt_toolkit.input.typeahead', 'prompt_toolkit.key_binding.bindings', 'prompt_toolkit.key_binding.bindings.page_navigation', 'prompt_toolkit.key_binding.bindings.scroll', 'prompt_toolkit.key_binding.defaults', 'prompt_toolkit.key_binding.bindings.basic', 'prompt_toolkit.key_binding.key_processor', 'prompt_toolkit.key_binding.bindings.named_commands', 'prompt_toolkit.key_binding.bindings.completion', 'prompt_toolkit.key_binding.bindings.cpr', 'prompt_toolkit.key_binding.bindings.emacs', 'prompt_toolkit.key_binding.bindings.mouse', 'prompt_toolkit.layout', 'prompt_toolkit.layout.containers', 'prompt_toolkit.formatted_text', 'prompt_toolkit.formatted_text.ansi', 'prompt_toolkit.output', 'prompt_toolkit.output.base', 'prompt_toolkit.layout.screen', 'prompt_toolkit.output.color_depth', 'prompt_toolkit.output.defaults', 'prompt_toolkit.output.vt100', 'prompt_toolkit.styles', 'prompt_toolkit.styles.base', 'prompt_toolkit.styles.defaults', 'prompt_toolkit.styles.named_colors', 'prompt_toolkit.styles.style', 'prompt_toolkit.styles.pygments', 'prompt_toolkit.styles.style_transformation', 'colorsys', 'prompt_toolkit.formatted_text.base', 'prompt_toolkit.formatted_text.html', 'xml', 'xml.dom', 'xml.dom.domreg', 'xml.dom.minidom', 'xml.dom.minicompat', 'xml.dom.xmlbuilder', 'xml.dom.NodeFilter', 'prompt_toolkit.formatted_text.pygments', 'prompt_toolkit.formatted_text.utils', 'prompt_toolkit.mouse_events', 'prompt_toolkit.layout.controls', 'prompt_toolkit.lexers', 'prompt_toolkit.lexers.base', 'prompt_toolkit.lexers.pygments', 'prompt_toolkit.layout.processors', 'prompt_toolkit.layout.utils', 'prompt_toolkit.layout.dimension', 'prompt_toolkit.layout.margins', 'prompt_toolkit.layout.layout', 'prompt_toolkit.layout.menus', 'prompt_toolkit.renderer', 'prompt_toolkit.layout.mouse_handlers', 'prompt_toolkit.key_binding.bindings.vi', 'prompt_toolkit.input.vt100_parser', 'prompt_toolkit.input.ansi_escape_sequences', 'prompt_toolkit.key_binding.digraphs', 'prompt_toolkit.key_binding.emacs_state', 'prompt_toolkit.layout.dummy', 'prompt_toolkit.application.dummy', 'prompt_toolkit.shortcuts', 'prompt_toolkit.shortcuts.dialogs', 'prompt_toolkit.key_binding.bindings.focus', 'prompt_toolkit.widgets', 'prompt_toolkit.widgets.base', 'prompt_toolkit.widgets.toolbars', 'prompt_toolkit.widgets.dialogs', 'prompt_toolkit.widgets.menus', 'prompt_toolkit.shortcuts.progress_bar', 'prompt_toolkit.shortcuts.progress_bar.base', 'prompt_toolkit.shortcuts.progress_bar.formatters', 'prompt_toolkit.shortcuts.prompt', 'prompt_toolkit.key_binding.bindings.auto_suggest', 'prompt_toolkit.key_binding.bindings.open_in_editor', 'prompt_toolkit.shortcuts.utils', 'prompt_toolkit.patch_stdout', 'pygments.style', 'IPython.terminal.debugger', 'IPython.core.completer', 'IPython.core.latex_symbols', 'IPython.utils.generics', 'jedi', 'jedi.api', 'parso', 'parso.parser', 'parso.tree', 'parso._compatibility', 'parso.utils', 'parso.pgen2', 'parso.pgen2.generator', 'parso.pgen2.grammar_parser', 'parso.python', 'parso.python.tokenize', 'parso.python.token', 'parso.grammar', 'parso.python.diff', 'parso.python.parser', 'parso.python.tree', 'parso.python.prefix', 'parso.cache', 'parso.python.errors', 'parso.normalizer', 'parso.python.pep8', 'parso.file_io', 'jedi._compatibility', 'jedi.file_io', 'jedi.parser_utils', 'jedi.debug', 'jedi.settings', 'jedi.cache', 'jedi.api.classes', 'jedi.evaluate', 'jedi.evaluate.utils', 'jedi.evaluate.imports', 'jedi.evaluate.sys_path', 'jedi.evaluate.cache', 'jedi.evaluate.base_context', 'jedi.common', 'jedi.common.context', 'jedi.evaluate.helpers', 'jedi.common.utils', 'jedi.evaluate.compiled', 'jedi.evaluate.compiled.context', 'jedi.evaluate.filters', 'jedi.evaluate.flow_analysis', 'jedi.evaluate.recursion', 'jedi.evaluate.names', 'jedi.evaluate.lazy_context', 'jedi.evaluate.compiled.access', 'jedi.evaluate.compiled.getattr_static', 'jedi.evaluate.signature', 'jedi.evaluate.analysis', 'jedi.evaluate.gradual', 'jedi.evaluate.gradual.typeshed', 'jedi.evaluate.gradual.stub_context', 'jedi.evaluate.context', 'jedi.evaluate.context.module', 'jedi.evaluate.context.klass', 'jedi.evaluate.arguments', 'jedi.evaluate.context.iterable', 'jedi.evaluate.param', 'jedi.evaluate.docstrings', 'jedi.evaluate.context.function', 'jedi.evaluate.parser_cache', 'jedi.plugins', 'jedi.evaluate.context.instance', 'jedi.evaluate.gradual.typing', 'jedi.evaluate.syntax_tree', 'jedi.evaluate.finder', 'jedi.evaluate.gradual.conversion', 'jedi.evaluate.gradual.annotation', 'jedi.evaluate.context.decorator', 'jedi.api.keywords', 'pydoc_data', 'pydoc_data.topics', 'jedi.api.interpreter', 'jedi.evaluate.compiled.mixed', 'jedi.api.helpers', 'jedi.api.completion', 'jedi.api.file_name', 'jedi.api.environment', 'filecmp', 'jedi.evaluate.compiled.subprocess', 'jedi.evaluate.compiled.subprocess.functions', 'jedi.api.exceptions', 'jedi.api.project', 'jedi.evaluate.usages', 'jedi.evaluate.gradual.utils', 'jedi.plugins.registry', 'jedi.plugins.stdlib', 'jedi.plugins.flask', 'IPython.terminal.ptutils', 'IPython.terminal.shortcuts', 'IPython.terminal.magics', 'IPython.lib.clipboard', 'IPython.terminal.pt_inputhooks', 'IPython.terminal.prompts', 'IPython.terminal.ipapp', 'IPython.core.magics', 'IPython.core.magics.auto', 'IPython.core.magics.basic', 'IPython.core.magics.code', 'IPython.core.magics.config', 'IPython.core.magics.display', 'IPython.core.magics.execution', 'timeit', 'cProfile', '_lsprof', 'profile', 'optparse', 'pstats', 'IPython.utils.module_paths', 'IPython.utils.timing', 'IPython.core.magics.extension', 'IPython.core.magics.history', 'IPython.core.magics.logging', 'IPython.core.magics.namespace', 'IPython.core.magics.osm', 'IPython.core.magics.packaging', 'IPython.core.magics.pylab', 'IPython.core.pylabtools', 'IPython.core.magics.script', 'IPython.lib.backgroundjobs', 'IPython.core.shellapp', 'IPython.extensions', 'IPython.extensions.storemagic', 'IPython.utils.frame', 'ipykernel', 'ipykernel._version', 'ipykernel.connect', 'jupyter_client', 'jupyter_client._version', 'jupyter_client.connect', 'jupyter_client.localinterfaces', 'jupyter_core', 'jupyter_core.version', 'jupyter_core.paths', 'jupyter_client.launcher', 'traitlets.log', 'jupyter_client.client', 'jupyter_client.channels', 'jupyter_client.channelsabc', 'jupyter_client.clientabc', 'jupyter_client.manager', 'jupyter_client.kernelspec', 'jupyter_client.managerabc', 'jupyter_client.blocking', 'jupyter_client.blocking.client', 'jupyter_client.blocking.channels', 'jupyter_client.multikernelmanager', 'ipykernel.iostream', 'zmq.eventloop', 'zmq.eventloop.ioloop', 'tornado', 'tornado.log', 'tornado.escape', 'tornado.util', 'tornado.speedups', 'curses', '_curses', 'tornado.ioloop', 'tornado.concurrent', 'tornado.platform', 'tornado.platform.asyncio', 'tornado.gen', 'zmq.eventloop.zmqstream', 'jupyter_client.session', 'jupyter_client.jsonutil', 'dateutil', 'dateutil._version', 'dateutil.parser', 'dateutil.parser._parser', 'dateutil.relativedelta', 'dateutil._common', 'dateutil.tz', 'dateutil.tz.tz', 'dateutil.tz._common', 'dateutil.tz._factories', 'dateutil.parser.isoparser', 'jupyter_client.adapter', 'pytz', 'pytz.exceptions', 'pytz.lazy', 'pytz.tzinfo', 'pytz.tzfile', 'astroplan.moon', 'astroplan.target', 'astroplan.constraints', 'astroplan.scheduling', 'astroplan.periodic', 'dbm', 'dbm.dumb', 'astropy.units.cds', 'pocs.camera', 'pocs.utils.error', 'pocs.camera.camera', 'pocs.utils.images', 'matplotlib', 'matplotlib.cbook', 'matplotlib.cbook.deprecation', 'matplotlib.rcsetup', 'matplotlib.fontconfig_pattern', 'pyparsing', 'matplotlib.colors', 'matplotlib._color_data', 'cycler', 'matplotlib._version', 'matplotlib.ft2font', 'kiwisolver']

Log file continued:

D1012 03:47:14.037               __init__.py:276] CACHEDIR=/home/panoptes/.cache/matplotlib
D1012 03:47:14.042           font_manager.py:1360] Using fontManager instance from /home/panoptes/.cache/matplotlib/fontlist-v310.json
D1012 03:47:14.496               __init__.py:276] CONFIGDIR=/home/panoptes/.config/matplotlib
D1012 03:47:14.528                 pyplot.py:225] Loaded backend agg version unknown.
D1012 03:47:29.787               __init__.py:080] simulator_names = power
D1012 03:47:29.787               __init__.py:096] Camera config: {'auto_detect': True, 'primary': '14d3bd', 'devices': [{'model': 'canon_gphoto2'}, {'model': 'canon_gphoto2'}]}
D1012 03:47:29.787               __init__.py:104] Auto-detecting ports for cameras
D1012 03:47:29.888               __init__.py:114] Detected Ports: ['usb:001,062', 'usb:001,063']
D1012 03:47:29.889               __init__.py:171] Creating camera: canon_gphoto2
D1012 03:47:29.893               __init__.py:175] Camera module: <module 'pocs.camera.canon_gphoto2' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/camera/canon_gphoto2.py'>
D1012 03:47:30.007                 camera.py:095] Camera created: Cam00 (XXXXXX) on usb:001,063
D1012 03:47:30.007                 camera.py:712] GPhoto2 camera Cam00 created on usb:001,063
D1012 03:47:30.007          canon_gphoto2.py:020] Connecting GPhoto2 camera
D1012 03:47:30.007          canon_gphoto2.py:029] Connecting to camera
D1012 03:47:30.007                 camera.py:733] gphoto2 command: ['/usr/bin/gphoto2', '--port', 'usb:001,063', '--get-config', 'serialnumber']
D1012 03:47:30.020                 camera.py:756] Getting output from proc 26931
D1012 03:47:30.481                 camera.py:733] gphoto2 command: ['/usr/bin/gphoto2', '--port', 'usb:001,063', '--set-config-index', '/main/actions/viewfinder=1', '--set-config-index', '/main/capturesettings/autoexposuremode=3', '--set-config-index', '/main/capturesettings/continuousaf=0', '--set-config-index', '/main/capturesettings/drivemode=0', '--set-config-index', '/main/capturesettings/focusmode=0', '--set-config-index', '/main/capturesettings/shutterspeed=0', '--set-config-index', '/main/imgsettings/imageformat=9', '--set-config-index', '/main/imgsettings/imageformatcf=9', '--set-config-index', '/main/imgsettings/imageformatsd=9', '--set-config-index', '/main/imgsettings/iso=1', '--set-config-index', '/main/settings/autopoweroff=0', '--set-config-index', '/main/settings/capturetarget=0', '--set-config-index', '/main/settings/datetime=now', '--set-config-index', '/main/settings/datetimeutc=now', '--set-config-index', '/main/settings/reviewtime=0', '--set-config-value', '/main/settings/artist=Project PANOPTES', '--set-config-value', '/main/settings/copyright=owner_name Project PANOPTES', '--set-config-value', '/main/settings/ownername=Project PANOPTES']
D1012 03:47:30.494                 camera.py:756] Getting output from proc 26938
D1012 03:47:31.153          canon_gphoto2.py:022] Cam00 connected
D1012 03:47:31.153               __init__.py:190] Camera created: Cam00 5205b8
D1012 03:47:31.153               __init__.py:171] Creating camera: canon_gphoto2
D1012 03:47:31.154               __init__.py:175] Camera module: <module 'pocs.camera.canon_gphoto2' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/camera/canon_gphoto2.py'>
D1012 03:47:31.177                 camera.py:095] Camera created: Cam01 (XXXXXX) on usb:001,062
D1012 03:47:31.178                 camera.py:712] GPhoto2 camera Cam01 created on usb:001,062
D1012 03:47:31.178          canon_gphoto2.py:020] Connecting GPhoto2 camera
D1012 03:47:31.178          canon_gphoto2.py:029] Connecting to camera
D1012 03:47:31.178                 camera.py:733] gphoto2 command: ['/usr/bin/gphoto2', '--port', 'usb:001,062', '--get-config', 'serialnumber']
D1012 03:47:31.191                 camera.py:756] Getting output from proc 26944
D1012 03:47:31.682                 camera.py:733] gphoto2 command: ['/usr/bin/gphoto2', '--port', 'usb:001,062', '--set-config-index', '/main/actions/viewfinder=1', '--set-config-index', '/main/capturesettings/autoexposuremode=3', '--set-config-index', '/main/capturesettings/continuousaf=0', '--set-config-index', '/main/capturesettings/drivemode=0', '--set-config-index', '/main/capturesettings/focusmode=0', '--set-config-index', '/main/capturesettings/shutterspeed=0', '--set-config-index', '/main/imgsettings/imageformat=9', '--set-config-index', '/main/imgsettings/imageformatcf=9', '--set-config-index', '/main/imgsettings/imageformatsd=9', '--set-config-index', '/main/imgsettings/iso=1', '--set-config-index', '/main/settings/autopoweroff=0', '--set-config-index', '/main/settings/capturetarget=0', '--set-config-index', '/main/settings/datetime=now', '--set-config-index', '/main/settings/datetimeutc=now', '--set-config-index', '/main/settings/reviewtime=0', '--set-config-value', '/main/settings/artist=Project PANOPTES', '--set-config-value', '/main/settings/copyright=owner_name Project PANOPTES', '--set-config-value', '/main/settings/ownername=Project PANOPTES']
D1012 03:47:31.697                 camera.py:756] Getting output from proc 26950
D1012 03:47:32.378          canon_gphoto2.py:022] Cam01 connected
D1012 03:47:32.379               __init__.py:190] Camera created: Cam01 5f1e70
D1012 03:47:32.379               __init__.py:203] Primary camera: Cam00 [Primary] (5205b8) on usb:001,063
D1012 03:47:32.388               __init__.py:204] 2 cameras created
I1012 03:47:32.409            observatory.py:031] Initializing observatory
I1012 03:47:32.410            observatory.py:034] 	Setting up location
D1012 03:47:32.410            observatory.py:716] Setting up site details of observatory
D1012 03:47:32.413            observatory.py:747] Location: {'name': 'Wildwood School', 'latitude': <Quantity 34.033719 deg>, 'longitude': <Quantity -118.451393 deg>, 'elevation': <Quantity 48. m>, 'timezone': 'US/Pacific', 'pressure': <Quantity 0.68 bar>, 'horizon': <Quantity 30. deg>, 'flat_horizon': <Quantity -6. deg>, 'focus_horizon': <Quantity -12. deg>, 'observe_horizon': <Quantity -18. deg>}
I1012 03:47:32.460            observatory.py:238] Removing mount
I1012 03:47:32.461            observatory.py:044] Adding the cameras to the observatory: OrderedDict([('Cam00', <pocs.camera.canon_gphoto2.Camera object at 0x7f3afc88d8d0>), ('Cam01', <pocs.camera.canon_gphoto2.Camera object at 0x7f3afecdea58>)])
D1012 03:47:32.461            observatory.py:176] Adding Cam00: Cam00 [Primary] (5205b8) on usb:001,063
D1012 03:47:32.461            observatory.py:176] Adding Cam01: Cam01 (5f1e70) on usb:001,062
I1012 03:47:32.461            observatory.py:224] Removing dome.
I1012 03:47:32.461            observatory.py:210] Removing scheduler.
I1012 03:47:32.461            observatory.py:056] 	 Observatory initialized
I1012 03:47:32.482                   core.py:066] Initializing PANOPTES unit - WISRD - Wildwood School
I1012 03:47:32.490              messaging.py:098] Creating forwarder sockets for 6500 -> 6501
D1012 03:47:32.491              messaging.py:158] Creating subscriber. Port: 6500 	Topic: 
D1012 03:47:32.492              messaging.py:135] Creating publisher. Binding to port 6501 
I1012 03:47:32.493              messaging.py:105] run_forwarder
I1012 03:47:32.494              messaging.py:109] run_forwarder calling zmq.device
I1012 03:47:32.496              messaging.py:098] Creating forwarder sockets for 6510 -> 6511
D1012 03:47:32.497              messaging.py:158] Creating subscriber. Port: 6510 	Topic: 
D1012 03:47:32.498              messaging.py:135] Creating publisher. Binding to port 6511 
I1012 03:47:32.500              messaging.py:105] run_forwarder
I1012 03:47:32.500              messaging.py:109] run_forwarder calling zmq.device
D1012 03:47:32.501              messaging.py:135] Creating publisher. Binding to port 6510 
D1012 03:47:32.502                   core.py:720] Starting command message loop
D1012 03:47:32.509                   core.py:725] Command message subscriber set up on port 6500
I1012 03:47:32.510                   core.py:080] Making a POCS state machine from simple_state_table
I1012 03:47:32.510                machine.py:029] Loading state table: simple_state_table
D1012 03:47:32.511              messaging.py:158] Creating subscriber. Port: 6501 	Topic: 
D1012 03:47:32.543                machine.py:404] Loading transition: {'source': ['ready', 'scheduling', 'slewing', 'pointing', 'tracking', 'observing', 'analyzing'], 'dest': 'parking', 'trigger': 'park'}
D1012 03:47:32.543                machine.py:412] Returning transition: {'source': ['ready', 'scheduling', 'slewing', 'pointing', 'tracking', 'observing', 'analyzing'], 'dest': 'parking', 'trigger': 'park', 'conditions': ['check_safety']}
D1012 03:47:32.543                machine.py:404] Loading transition: {'source': 'parking', 'dest': 'parked', 'trigger': 'set_park'}
D1012 03:47:32.543                machine.py:412] Returning transition: {'source': 'parking', 'dest': 'parked', 'trigger': 'set_park', 'conditions': ['check_safety']}
D1012 03:47:32.543                machine.py:404] Loading transition: {'source': 'parked', 'dest': 'housekeeping', 'trigger': 'clean_up'}
D1012 03:47:32.543                machine.py:412] Returning transition: {'source': 'parked', 'dest': 'housekeeping', 'trigger': 'clean_up', 'conditions': ['check_safety']}
D1012 03:47:32.544                machine.py:404] Loading transition: {'source': 'housekeeping', 'dest': 'sleeping', 'trigger': 'goto_sleep'}
D1012 03:47:32.544                machine.py:412] Returning transition: {'source': 'housekeeping', 'dest': 'sleeping', 'trigger': 'goto_sleep', 'conditions': ['check_safety']}
D1012 03:47:32.544                machine.py:404] Loading transition: {'source': 'parked', 'dest': 'ready', 'trigger': 'get_ready', 'conditions': 'mount_is_initialized'}
D1012 03:47:32.544                machine.py:412] Returning transition: {'source': 'parked', 'dest': 'ready', 'trigger': 'get_ready', 'conditions': ['check_safety', 'mount_is_initialized']}
D1012 03:47:32.544                machine.py:404] Loading transition: {'source': 'sleeping', 'dest': 'ready', 'trigger': 'get_ready', 'conditions': 'mount_is_initialized'}
D1012 03:47:32.544                machine.py:412] Returning transition: {'source': 'sleeping', 'dest': 'ready', 'trigger': 'get_ready', 'conditions': ['check_safety', 'mount_is_initialized']}
D1012 03:47:32.544                machine.py:404] Loading transition: {'source': 'ready', 'dest': 'scheduling', 'trigger': 'schedule'}
D1012 03:47:32.544                machine.py:412] Returning transition: {'source': 'ready', 'dest': 'scheduling', 'trigger': 'schedule', 'conditions': ['check_safety']}
D1012 03:47:32.544                machine.py:404] Loading transition: {'source': 'analyzing', 'dest': 'scheduling', 'trigger': 'schedule'}
D1012 03:47:32.545                machine.py:412] Returning transition: {'source': 'analyzing', 'dest': 'scheduling', 'trigger': 'schedule', 'conditions': ['check_safety']}
D1012 03:47:32.545                machine.py:404] Loading transition: {'source': 'scheduling', 'dest': 'slewing', 'trigger': 'start_slewing'}
D1012 03:47:32.545                machine.py:412] Returning transition: {'source': 'scheduling', 'dest': 'slewing', 'trigger': 'start_slewing', 'conditions': ['check_safety']}
D1012 03:47:32.545                machine.py:404] Loading transition: {'source': 'scheduling', 'dest': 'tracking', 'trigger': 'adjust_tracking'}
D1012 03:47:32.545                machine.py:412] Returning transition: {'source': 'scheduling', 'dest': 'tracking', 'trigger': 'adjust_tracking', 'conditions': ['check_safety']}
D1012 03:47:32.545                machine.py:404] Loading transition: {'source': 'slewing', 'dest': 'pointing', 'trigger': 'adjust_pointing', 'conditions': 'mount_is_tracking'}
D1012 03:47:32.545                machine.py:412] Returning transition: {'source': 'slewing', 'dest': 'pointing', 'trigger': 'adjust_pointing', 'conditions': ['check_safety', 'mount_is_tracking']}
D1012 03:47:32.545                machine.py:404] Loading transition: {'source': 'pointing', 'dest': 'slewing', 'trigger': 'start_slewing', 'conditions': 'mount_is_tracking'}
D1012 03:47:32.545                machine.py:412] Returning transition: {'source': 'pointing', 'dest': 'slewing', 'trigger': 'start_slewing', 'conditions': ['check_safety', 'mount_is_tracking']}
D1012 03:47:32.546                machine.py:404] Loading transition: {'source': 'pointing', 'dest': 'tracking', 'trigger': 'track', 'conditions': 'mount_is_tracking'}
D1012 03:47:32.546                machine.py:412] Returning transition: {'source': 'pointing', 'dest': 'tracking', 'trigger': 'track', 'conditions': ['check_safety', 'mount_is_tracking']}
D1012 03:47:32.546                machine.py:404] Loading transition: {'source': 'tracking', 'dest': 'observing', 'trigger': 'observe', 'conditions': 'mount_is_tracking'}
D1012 03:47:32.546                machine.py:412] Returning transition: {'source': 'tracking', 'dest': 'observing', 'trigger': 'observe', 'conditions': ['check_safety', 'mount_is_tracking']}
D1012 03:47:32.546                machine.py:404] Loading transition: {'source': 'observing', 'dest': 'analyzing', 'trigger': 'analyze'}
D1012 03:47:32.546                machine.py:412] Returning transition: {'source': 'observing', 'dest': 'analyzing', 'trigger': 'analyze', 'conditions': ['check_safety']}
D1012 03:47:32.546                machine.py:404] Loading transition: {'source': 'observing', 'dest': 'observing', 'trigger': 'observe', 'conditions': 'mount_is_tracking'}
D1012 03:47:32.546                machine.py:412] Returning transition: {'source': 'observing', 'dest': 'observing', 'trigger': 'observe', 'conditions': ['check_safety', 'mount_is_tracking']}
D1012 03:47:32.546                machine.py:404] Loading transition: {'source': 'analyzing', 'dest': 'tracking', 'trigger': 'adjust_tracking', 'conditions': 'mount_is_tracking'}
D1012 03:47:32.547                machine.py:412] Returning transition: {'source': 'analyzing', 'dest': 'tracking', 'trigger': 'adjust_tracking', 'conditions': ['check_safety', 'mount_is_tracking']}
D1012 03:47:32.547                machine.py:370] Loading state: parked
D1012 03:47:32.549                machine.py:380] Checking <module 'pocs.state.states.default.parked' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/parked.py'>
D1012 03:47:32.550                machine.py:386] Added `on_enter` method from <module 'pocs.state.states.default.parked' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/parked.py'> <function on_enter at 0x7f3ae14b3730>
D1012 03:47:32.550                machine.py:388] Created state
D1012 03:47:32.550                machine.py:370] Loading state: sleeping
D1012 03:47:32.551                machine.py:380] Checking <module 'pocs.state.states.default.sleeping' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/sleeping.py'>
D1012 03:47:32.551                machine.py:386] Added `on_enter` method from <module 'pocs.state.states.default.sleeping' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/sleeping.py'> <function on_enter at 0x7f3ae14b36a8>
D1012 03:47:32.551                machine.py:388] Created state
D1012 03:47:32.551                machine.py:370] Loading state: housekeeping
D1012 03:47:32.552                machine.py:380] Checking <module 'pocs.state.states.default.housekeeping' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/housekeeping.py'>
D1012 03:47:32.553                machine.py:386] Added `on_enter` method from <module 'pocs.state.states.default.housekeeping' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/housekeeping.py'> <function on_enter at 0x7f3ae14b37b8>
D1012 03:47:32.553                machine.py:388] Created state
D1012 03:47:32.553                machine.py:370] Loading state: ready
D1012 03:47:32.554                machine.py:380] Checking <module 'pocs.state.states.default.ready' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/ready.py'>
D1012 03:47:32.554                machine.py:386] Added `on_enter` method from <module 'pocs.state.states.default.ready' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/ready.py'> <function on_enter at 0x7f3ae14b3840>
D1012 03:47:32.554                machine.py:388] Created state
D1012 03:47:32.554                machine.py:370] Loading state: scheduling
D1012 03:47:32.556                machine.py:380] Checking <module 'pocs.state.states.default.scheduling' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/scheduling.py'>
D1012 03:47:32.556                machine.py:386] Added `on_enter` method from <module 'pocs.state.states.default.scheduling' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/scheduling.py'> <function on_enter at 0x7f3ae14b38c8>
D1012 03:47:32.556                machine.py:388] Created state
D1012 03:47:32.556                machine.py:370] Loading state: slewing
D1012 03:47:32.557                machine.py:380] Checking <module 'pocs.state.states.default.slewing' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/slewing.py'>
D1012 03:47:32.558                machine.py:386] Added `on_enter` method from <module 'pocs.state.states.default.slewing' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/slewing.py'> <function on_enter at 0x7f3ae14b3950>
D1012 03:47:32.558                machine.py:388] Created state
D1012 03:47:32.558                machine.py:370] Loading state: pointing
D1012 03:47:32.561                machine.py:380] Checking <module 'pocs.state.states.default.pointing' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/pointing.py'>
D1012 03:47:32.561                machine.py:386] Added `on_enter` method from <module 'pocs.state.states.default.pointing' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/pointing.py'> <function on_enter at 0x7f3ae14b39d8>
D1012 03:47:32.561                machine.py:388] Created state
D1012 03:47:32.561                machine.py:370] Loading state: tracking
D1012 03:47:32.562                machine.py:380] Checking <module 'pocs.state.states.default.tracking' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/tracking.py'>
D1012 03:47:32.562                machine.py:386] Added `on_enter` method from <module 'pocs.state.states.default.tracking' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/tracking.py'> <function on_enter at 0x7f3ae14b3ae8>
D1012 03:47:32.563                machine.py:388] Created state
D1012 03:47:32.563                machine.py:370] Loading state: observing
D1012 03:47:32.564                machine.py:380] Checking <module 'pocs.state.states.default.observing' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/observing.py'>
D1012 03:47:32.564                machine.py:386] Added `on_enter` method from <module 'pocs.state.states.default.observing' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/observing.py'> <function on_enter at 0x7f3ae14b3bf8>
D1012 03:47:32.564                machine.py:388] Created state
D1012 03:47:32.565                machine.py:370] Loading state: analyzing
D1012 03:47:32.566                machine.py:380] Checking <module 'pocs.state.states.default.analyzing' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/analyzing.py'>
D1012 03:47:32.566                machine.py:386] Added `on_enter` method from <module 'pocs.state.states.default.analyzing' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/analyzing.py'> <function on_enter at 0x7f3ae14b3c80>
D1012 03:47:32.566                machine.py:388] Created state
D1012 03:47:32.566                machine.py:370] Loading state: parking
D1012 03:47:32.567                machine.py:380] Checking <module 'pocs.state.states.default.parking' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/parking.py'>
D1012 03:47:32.567                machine.py:386] Added `on_enter` method from <module 'pocs.state.states.default.parking' from '/var/panoptes/miniconda/envs/panoptes-env/lib/python3.6/site-packages/pocs-0.6.2-py3.6.egg/pocs/state/states/default/parking.py'> <function on_enter at 0x7f3ae14b3d08>
D1012 03:47:32.567                machine.py:388] Created state
D1012 03:47:32.589                machine.py:063] State machine created
I1012 03:47:32.590            observatory.py:153] Scheduler not present, cannot observe.
W1012 03:47:32.592            observatory.py:306] Can't get observatory status: 'NoneType' object has no attribute 'is_initialized'
I1012 03:47:32.594              messaging.py:204] PANCHAT Hi there!
I1012 03:47:32.595                   core.py:145] ********************************************************************************
I1012 03:47:32.596              messaging.py:204] PANCHAT Initializing the system! Woohoo!
D1012 03:47:32.596                   core.py:149] Initializing observatory
D1012 03:47:32.596            observatory.py:249] Initializing mount
I1012 03:47:32.597              messaging.py:204] PANCHAT Oh wait. There was a problem initializing: 'NoneType' object has no attribute 'initialize'
I1012 03:47:32.599              messaging.py:204] PANCHAT Since we didn't initialize, I'm going to exit.
I1012 03:47:32.600              messaging.py:204] PANCHAT I'm powering down
I1012 03:47:32.600                   core.py:230] Shutting down POCS State Machine: , please be patient and allow for exit.

While the log told me to be patient, I eventually keyboard interrupted the pocs_shell after 15 minutes of waiting. Note: I was working remotely over ssh, and had to connect to the unit in two separate windows to use grc tail -F $PANLOG/pocs_shell-all.log as the hanging stopped the logging for some reason. After investigating some of the python scripts, I am unsure of how to continue. Any ideas?

Update: Zach and the PAN015 team were able to download the latest version of POCS but are still having some issues getting it working (more details soon)

After talking with @tmcook about the previous errors, we have decided to switch to the docker version of POCS, and are using new docker documentation provided by @tmcook (Thanks!).
I successfully cloned POCS, PAWS, and panoptes-utils repos with $ bash -c "$(wget -qO- https://install.projectpanoptes.org)", and copy pasted our old pocs_local.yaml file into the $PANDIR/conf_files directory after checking to make sure that config files have identical formatting.

Then this happened when running the next step:

panoptes@pan015:/var/panoptes/POCS$ bin/pocs up -d
WARNING: The PANDIR variable is not set. Defaulting to a blank string.
ERROR: Couldn't find env file: /.env

I fixed this error based off this topic thread by duplicating the env_file and renaming it to .env:

cd $PANDIR #Defined in bash but not in docker
cp env_file .env

@wtgee, should I have to create the .env file or has the download already gone wrong? (@tmcook did you have to this on your unit?)

Running bin/pocs up -d from the $POCS directory for a second time gave this output:

aag-weather-reader is up-to-date
config-server is up-to-date
aag-weather-server is up-to-date
messaging-hub is up-to-date
Starting paws       ... done
Starting peas-shell ... done
Starting pocs-shell ... done

Which I assume means everything is working. I say assume because on the next step I was barraged with errors trying to enter the PEAS shell:

panoptes@pan015:/var/panoptes/POCS$ bin/peas-shell
/opt/conda/lib/python3.7/site-packages/astropy/config/configuration.py:532: ConfigurationMissingWarning: Configuration defaults will be used due to PermissionError:13 on None
  warn(ConfigurationMissingWarning(msg))
Traceback (most recent call last):
  File "/var/panoptes/POCS/scripts/peas-shell.py", line 14, in <module>
    from peas.sensors import ArduinoSerialMonitor
  File "/var/panoptes/POCS/peas/sensors.py", line 12, in <module>
    from panoptes.utils.messaging import PanMessaging
  File "/opt/conda/lib/python3.7/site-packages/panoptes/utils/messaging.py", line 10, in <module>
    class PanMessaging(object):
  File "/opt/conda/lib/python3.7/site-packages/panoptes/utils/messaging.py", line 72, in PanMessaging
    logger = get_root_logger()
  File "/opt/conda/lib/python3.7/site-packages/panoptes/utils/logger.py", line 251, in get_root_logger
    os.makedirs(per_run_dir, exist_ok=True)
  File "/opt/conda/lib/python3.7/os.py", line 221, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/var/panoptes/logs/per-run/peas-shell.py'
panoptes@pan015:/var/panoptes/POCS$

These failures were so bad that a peas-shell.py-all.log file was not created. Looking in /opt there is no conda repository. I wasn’t able to fix these issues, and have put what I tried doing to fix them below. My main question is: How can something that doesn’t exist call an error and cause a permission error? Thanks in advance for the much needed support.

Also, it appears that you can’t reply to the forum if you respond three times in a row! Thanks to @tmcook who I had un-block the thread for me.

Troubleshooting attempts:
The missing conda direcotry made me believe I was missing the conda library, so I downloaded anaconda3 to the /opt directory following this guide, and found that by renaming the anaconda3 folder to conda the correct path would exist. Unfortunately, this had no effect on the error. I think I might be downloading the wrong library/python package but can’t find a library simply named “conda” that has this path.

The next thing I tried, after creating a backup of $PANDIR, was temporarily giving everything perms to see if that was the issue. In terminal I entered:

$ cd $PANDIR
$ sudo chmod -R 777 ./
$ cd $POCS
$ bin/peas-shell
/opt/conda/lib/python3.7/site-packages/astropy/config/configuration.py:532: ConfigurationMissingWarning: Configuration defaults will be used due to PermissionError:13 on None
  warn(ConfigurationMissingWarning(msg))
Welcome to PEAS Shell! Type ? for help
PEAS > 

I know that this likely didn’t fix anything, but it hid the errors and was enough to create a log file. In the PEAS Shell I entered load_control_board and load_camera_board. Unfortunately, I don’t have the exact saved output in the PEAS Shell log file, but I remember it said it was unable to open the Arduino ports, and it tried to access the camera board arduino with the control box arduino’s port, and visa versa. This didn’t cause the PEAS Shell to exit, but it made it useless as I was unable to get data from either arduino due to the expected parsing errors the port switching caused.