smcpy.particles.particle — SMCPy 1.0 documentation

# Source code for smcpy.particles.particle

    '''
    Notices:
    Copyright 2018 United States Government as represented by the Administrator of
    the National Aeronautics and Space Administration. No copyright is claimed in
    the United States under Title 17, U.S. Code. All Other Rights Reserved.

    Disclaimers
    No Warranty: THE SUBJECT SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY OF
    ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED
    TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL CONFORM TO SPECIFICATIONS, ANY
    IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
    FREEDOM FROM INFRINGEMENT, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL BE ERROR
    FREE, OR ANY WARRANTY THAT DOCUMENTATION, IF PROVIDED, WILL CONFORM TO THE
    SUBJECT SOFTWARE. THIS AGREEMENT DOES NOT, IN ANY MANNER, CONSTITUTE AN
    ENDORSEMENT BY GOVERNMENT AGENCY OR ANY PRIOR RECIPIENT OF ANY RESULTS,
    RESULTING DESIGNS, HARDWARE, SOFTWARE PRODUCTS OR ANY OTHER APPLICATIONS
    RESULTING FROM USE OF THE SUBJECT SOFTWARE.  FURTHER, GOVERNMENT AGENCY
    DISCLAIMS ALL WARRANTIES AND LIABILITIES REGARDING THIRD-PARTY SOFTWARE, IF
    PRESENT IN THE ORIGINAL SOFTWARE, AND DISTRIBUTES IT "AS IS."

    Waiver and Indemnity:  RECIPIENT AGREES TO WAIVE ANY AND ALL CLAIMS AGAINST THE
    UNITED STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS WELL AS ANY
    PRIOR RECIPIENT.  IF RECIPIENT'S USE OF THE SUBJECT SOFTWARE RESULTS IN ANY
    LIABILITIES, DEMANDS, DAMAGES, EXPENSES OR LOSSES ARISING FROM SUCH USE,
    INCLUDING ANY DAMAGES FROM PRODUCTS BASED ON, OR RESULTING FROM, RECIPIENT'S
    USE OF THE SUBJECT SOFTWARE, RECIPIENT SHALL INDEMNIFY AND HOLD HARMLESS THE
    UNITED STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS WELL AS ANY
    PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY LAW.  RECIPIENT'S SOLE REMEDY FOR
    ANY SUCH MATTER SHALL BE THE IMMEDIATE, UNILATERAL TERMINATION OF THIS
    AGREEMENT.
    '''

    import copy
    import numpy as np

    class Particle():
        '''
        Class defining data structure of an SMC particle (a member of an SMC
        particle chain).
        '''

        def __init__(self, params, weight, log_like):
            '''
            :param params: parameters associated with particle; keys = parameter
                name and values = parameter value.
            :type params: dictionary
            :param weight: the computed weight of the particle
            :type weight: float
            :param log_like: the log likelihood of the particle
            :type log_like: float
            '''
            self.params = params
            self.weight = weight
            self.log_like = log_like

        def print_particle_info(self):
            '''
            Prints particle parameters, weight, and log likelihood to screen.
            '''
            print 'params = %s' % self.params
            print 'weight = %s' % self.weight
            print 'log_like = %s' % self.log_like
            return None

        def copy(self):
            '''
            Returns a deep copy of self.
            '''
            return copy.deepcopy(self)