#    print("Loading data ...")
#    gf = GeoField()
#    gf.load("data/pres.mon.mean.nc", 'pres')
#    gf.transform_to_anomalies()
#    gf.normalize_monthly_variance()
#    gf.slice_date_range(date(1948, 1, 1), date(2012, 1, 1))
#    gf.slice_spatial(None, [20, 89])
#    gf.slice_months([12, 1, 2])

    # construct a test system    
    S = np.zeros(shape = (20, 50), dtype = np.int32)
    S[10:18, 25:45] = 1
    S[0:3, 6:12] = 2
    S[8:15, 2:12] = 3
    v, Sr = constructVAR(S, [0.0, 0.4, 0.8, 0.7], [-0.5, 0.5], [0.0, 0.0])
#    v, Sr = constructVAR(S, [0.0, 0.001, 0.01], [-0.1, 0.1], [0.00, 0.00], [0.01, 0.01])
    ts = v.simulate(200)
    gf = make_model_geofield(S, ts)
    
    # initialize a parallel pool
    pool = Pool(POOL_SIZE)

    # replace field with surrogate field
    sgf = SurrGeoFieldAR()
    sgf.copy_field(gf)
    sgf.prepare_surrogates(pool)
    sgf.construct_surrogate_with_noise()
    gf = sgf
    gf.d = gf.surr_data().copy()
    
Beispiel #2
0
from spatial_model_generator import constructVAR, make_model_geofield
import numpy as np
import matplotlib.pyplot as plt
from geo_field import GeoField
from surr_geo_field_ar import SurrGeoFieldAR
import cPickle

# construct the testing model from a spec
S = np.zeros(shape=(20, 50), dtype=np.int32)
S[10:18, 25:45] = 1
S[0:3, 6:12] = 2
v, Sr = constructVAR(S, [0.0, 0.8, 0.8], [-0.1, 0.1], [0.0, 0.0])

#v, Sr = constructVAR2(S, [-0.2, 0.2], [0.0, 0.9, 0.9], 0.8)

#S = np.zeros(shape = (5, 10), dtype = np.int32)
#S[1:4, 0:2] = 1
#S[0:3, 6:9] = 2v, Sr = constructVAR(S, [0.0, 0.191, 0.120], [-0.1, 0.1], [0.00, 0.00], [0.01, 0.01])
ts = v.simulate(768)

gf = make_model_geofield(S, ts)
sgf = SurrGeoFieldAR()
sgf.copy_field(gf)
sgf.prepare_surrogates()
sgf.construct_surrogate_with_noise()
ts2 = sgf.surr_data()

plt.figure(figsize=(8, 8))
plt.imshow(S, interpolation='nearest')
plt.title('Structural matrix')
        # compute RVDIM(1)
        rvdims[i] = rlam[0] / np.sum(rlam**2)**0.5

    return rvdims


if __name__ == "__main__":

    print("Estimate PCA components script version 1.0")

    S = np.zeros(shape=(20, 50), dtype=np.int32)
    S[10:18, 25:45] = 1
    S[0:3, 6:12] = 2
    S[8:15, 2:12] = 3
    v, Sr = constructVAR(S, [0.0, 0.6, 0.9, 0.7], [0.3, 0.5], [0.0, 0.0])
    ts = v.simulate(200)
    gf = make_model_geofield(S, ts)

    # initialize a parallel pool
    pool = Pool(POOL_SIZE)

    # compute the eigenvalues/eigenvectos of the covariance matrix of
    Ud, dlam, _ = pca_components_gf(gf.data())
    drdims = np.zeros((NUM_EIGS, ))
    for i in range(NUM_EIGS):
        drdims[i] = dlam[i] / np.sum(dlam[i:]**2)**0.5

    sd = SurrGeoFieldAR([0, 30], 'sbc')
    sd.copy_field(gf)
    sd.prepare_surrogates(pool)
        
        # compute RVDIM(1)
        rvdims[i] = rlam[0] / np.sum(rlam**2)**0.5
    
    return rvdims


if __name__ == "__main__":

    print("Estimate PCA components script version 1.0")
    
    S = np.zeros(shape = (20, 50), dtype = np.int32)
    S[10:18, 25:45] = 1
    S[0:3, 6:12] = 2
    S[8:15, 2:12] = 3
    v, Sr = constructVAR(S, [0.0, 0.6, 0.9, 0.7], [0.3, 0.5], [0.0, 0.0])
    ts = v.simulate(200)
    gf = make_model_geofield(S, ts)
    
    # initialize a parallel pool
    pool = Pool(POOL_SIZE)
    
    # compute the eigenvalues/eigenvectos of the covariance matrix of
    Ud, dlam, _ = pca_components_gf(gf.data())
    drdims = np.zeros((NUM_EIGS,))
    for i in range(NUM_EIGS):
        drdims[i] = dlam[i] / np.sum(dlam[i:]**2)**0.5
    
    sd = SurrGeoFieldAR([0, 30], 'sbc')
    sd.copy_field(gf)
    sd.prepare_surrogates(pool)
Beispiel #5
0

from spatial_model_generator import constructVAR, make_model_geofield
import numpy as np
import matplotlib.pyplot as plt
from geo_field import GeoField
from surr_geo_field_ar import SurrGeoFieldAR
import cPickle

# construct the testing model from a spec
S = np.zeros(shape = (20, 50), dtype = np.int32)
S[10:18, 25:45] = 1
S[0:3, 6:12] = 2
v, Sr = constructVAR(S, [0.0, 0.8, 0.8], [-0.1, 0.1], [0.0, 0.0])

#v, Sr = constructVAR2(S, [-0.2, 0.2], [0.0, 0.9, 0.9], 0.8)

#S = np.zeros(shape = (5, 10), dtype = np.int32)
#S[1:4, 0:2] = 1
#S[0:3, 6:9] = 2v, Sr = constructVAR(S, [0.0, 0.191, 0.120], [-0.1, 0.1], [0.00, 0.00], [0.01, 0.01])
ts = v.simulate(768)

gf = make_model_geofield(S, ts)
sgf = SurrGeoFieldAR()
sgf.copy_field(gf)
sgf.prepare_surrogates()
sgf.construct_surrogate_with_noise()
ts2 = sgf.surr_data() 

plt.figure(figsize = (8, 8))
plt.imshow(S, interpolation = 'nearest')
    #    print("Loading data ...")
    #    gf = GeoField()
    #    gf.load("data/pres.mon.mean.nc", 'pres')
    #    gf.transform_to_anomalies()
    #    gf.normalize_monthly_variance()
    #    gf.slice_date_range(date(1948, 1, 1), date(2012, 1, 1))
    #    gf.slice_spatial(None, [20, 89])
    #    gf.slice_months([12, 1, 2])

    # construct a test system
    S = np.zeros(shape=(20, 50), dtype=np.int32)
    S[10:18, 25:45] = 1
    S[0:3, 6:12] = 2
    S[8:15, 2:12] = 3
    v, Sr = constructVAR(S, [0.0, 0.4, 0.8, 0.7], [-0.5, 0.5], [0.0, 0.0])
    #    v, Sr = constructVAR(S, [0.0, 0.001, 0.01], [-0.1, 0.1], [0.00, 0.00], [0.01, 0.01])
    ts = v.simulate(200)
    gf = make_model_geofield(S, ts)

    # initialize a parallel pool
    pool = Pool(POOL_SIZE)

    # replace field with surrogate field
    sgf = SurrGeoFieldAR()
    sgf.copy_field(gf)
    sgf.prepare_surrogates(pool)
    sgf.construct_surrogate_with_noise()
    gf = sgf
    gf.d = gf.surr_data().copy()