Using pyplate ============= Working with metadata --------------------- An archive is a collection of photographic plates, logbooks, observer notes, etc. In ``pyplate``, an archive is represented with ``ArchiveMeta`` class in the ``metadata`` module. An individual plate is represented with ``PlateMeta`` and a FITS header with ``PlateHeader`` class. Initialise an archive:: import pyplate archive = pyplate.metadata.ArchiveMeta() Importing metadata from files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Metadata can be conveniently imported from the Wide-Field Plate Database (WFPDB) files and comma-separated values (CSV) files. Import metadata from WFPDB files:: archive.read_wfpdb(wfpdb_dir='/path/to/wfpdb_dir', fn_maindata='maindata.txt', fn_quality='quality.txt', fn_notes='notes.txt', fn_observer='observer.txt') Import metadata from CSV files:: archive.read_csv(csv_dir='/path/to/csv_dir', fn_plate_csv='plates.csv', fn_scan_csv='scans.csv', fn_logpage_csv='logpages.csv') Creating and managing a FITS header ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Create an empty header:: pheader = pyplate.metadata.PlateHeader() pheader.populate() Create header from a FITS file:: pheader = pyplate.metadata.PlateHeader.from_fits('/path/to/file.fits') Create header from a text file that contains a FITS header:: pheader = pyplate.metadata.PlateHeader.from_hdrf('/path/to/file.hdrf') Update header with metadata:: pmeta = pyplate.metadata.PlateMeta() pheader.update_from_platemeta(pmeta) Configure input and output directories:: pheader.fits_dir = '/path/to/fits_dir' pheader.write_fits_dir = '/path/to/write_fits_dir' pheader.write_header_dir = '/path/to/write_header_dir' Write header to a FITS file in ``write_fits_dir``:: pheader.output_to_fits('file.fits') If the FITS file exists, then its header is updated with ``pheader``. If the file does not exist, ``pyplate`` assumes that the file with the same name exists in ``fits_dir``. The file is then opened for reading and an output file is written to ``write_fits_dir`` with the current header. Write header to a text file in ``write_header_dir``:: pheader.output_to_fits('file.hdr') Extracting sources from a plate image and solving astrometry ------------------------------------------------------------ Initialise plate process:: proc = pyplate.solve.SolveProcess('file.fits') Configure process:: proc.fits_dir = '/path/to/fits_dir' proc.tycho2_dir = '/path/to/tycho2_dir' proc.work_dir = '/path/to/work_dir' proc.write_source_dir = '/path/to/write_source_dir' proc.write_wcs_dir = '/path/to/write_wcs_dir' proc.write_log_dir = '/path/to/write_log_dir' Alternatively, specify a configuration file or pass a variable containing configuration:: proc.assign_conf('/path/to/conf_file.cfg') # Use ArchiveMeta configuration instead proc.assign_conf(archive.conf) Set up process:: proc.setup() Extract sources:: proc.extract_sources() Finish process:: proc.finish() Writing data to database ------------------------ Creating a pipeline -------------------