Beispiel #1
0
def terraclimate_fia_wide():
    # generate wide data w/ terraclim
    df_fia = load.fia(store='az', states=states, group_repeats=True)
    df = load.terraclim(
        store='az',
        tlim=(int(df_fia['year_0'].min()), 2020),
        variables=variables,
        df=df_fia,
        group_repeats=True,
        sampling='annual',
    )
    write_df(df, 'FIA-TerraClim-Wide')
Beispiel #2
0
def terraclimate_fia_long():
    # generate long data w/ terraclim

    df_fia = load.fia(store='az', states=states, clean=False)

    for target in targets_terraclimate:
        tlim = (str(int(target) - 5), str(int(target) + 4))
        print(tlim)

        df = load.terraclim(
            store='az',
            tlim=(int(tlim[0]), int(tlim[1])),
            variables=variables,
            df=df_fia,
            sampling='annual',
        )

        write_df(df, f'FIA-TerraClim-Long-{tlim[0]}.{tlim[1]}')
Beispiel #3
0
args = sys.argv

if len(args) < 2:
    store = 'local'
else:
    store = args[1]

data_vars = ['ppt', 'tavg']
data_aggs = ['sum', 'mean']

print('[insects] loading data')
df = load.fia(store=store, states='conus', group_repeats=True)
df = load.terraclim(
    store=store,
    tlim=(int(df['year_0'].min()), 2020),
    data_vars=data_vars,
    data_aggs=data_aggs,
    df=df,
    group_repeats=True,
)

print('[insects] prepare for fitting')
x, y, pf = prepare.insects(df)
x_z, x_mean, x_std = utils.zscore_2d(x)
codes = pf['type_code'].unique()

print('[insects] fit models')
models = {}
for code in tqdm(codes):
    inds = pf['type_code'] == code
    if (y[inds].sum() > 1) & (y[inds].sum() > 1):
        model = fit.hurdle(x=x_z[inds], y=y[inds])
Beispiel #4
0

coarsen = 4
tlim = (1984, 2018)
variables = ["ppt", "tmean", "cwd"]
store = "az"

print('[stats] loading data')
mask = (load.nlcd(store=store, year=2001).sel(band=[41, 42, 43, 90]).sum('band') > 0.25).astype(
    'float'
)
nftd = load.nftd(store=store, area_threshold=1500, coarsen=coarsen, mask=mask)
climate = load.terraclim(
    store=store,
    tlim=(tlim[0] - 1, tlim[1]),
    coarsen=coarsen,
    variables=variables,
    mask=mask,
    sampling="monthly",
)
mtbs = load.mtbs(store=store, coarsen=coarsen, tlim=tlim, mask=mask)

prepend = climate.sel(time=slice('1983', '1983'))
x, y = prepare.fire(
    climate.sel(time=slice('1984', '2018')),
    nftd,
    mtbs,
    add_global_climate_trends={
        'tmean': {'climate_prepend': prepend, 'rolling_period': 12},
        'ppt': {'climate_prepend': prepend, 'rolling_period': 12},
    },
    add_local_climate_trends=None,
Beispiel #5
0
tlim = (1983, 2018)
analysis_tlim = slice('1984', '2018')

print('[fire] loading data')
mask = (load.nlcd(store=store, year=2001).sel(
    band=[41, 42, 43, 90]).sum('band') > 0.25).astype('float')
nftd = load.nftd(store=store,
                 groups='all',
                 coarsen=coarsen_fit,
                 mask=mask,
                 area_threshold=1500)

climate = load.terraclim(
    store=store,
    tlim=tlim,
    coarsen=coarsen_fit,
    variables=data_vars,
    mask=mask,
    sampling="monthly",
)
mtbs = load.mtbs(store=store, coarsen=coarsen_fit, tlim=tlim, mask=mask)
mtbs = mtbs.assign_coords({'x': nftd.x, 'y': nftd.y})

print('[fire] fitting model')
prepend = climate.sel(time=slice('1983', '1983'))
x, y = prepare.fire(
    climate.sel(time=slice('1984', '2018')),
    nftd,
    mtbs,
    add_global_climate_trends={
        'tmean': {
            'climate_prepend': prepend,
Beispiel #6
0
args = sys.argv

if len(args) < 2:
    store = 'local'
else:
    store = args[1]

variables = ['tmean', 'ppt']

print('[biomass] loading data')
df = load.fia(store=store, states='conus')
df = load.terraclim(
    store=store,
    tlim=(2000, 2020),
    variables=variables,
    remove_nans=True,
    sampling='annual',
    df=df,
)
type_codes = df['type_code'].unique()

print('[biomass] fitting models')
models = {}
for code in tqdm(type_codes):
    df_type = df[df['type_code'] == code].reset_index()
    x = df_type['age']
    y = df_type['biomass']
    f = [df_type['tmean_mean'], df_type['ppt_mean']]
    model = fit.growth(x=x, y=y, f=f, noise='gamma')
    models[code] = model