world-ecoregion/various_temps.py
2019-02-27 15:06:20 +03:30

66 lines
1.7 KiB
Python

import numpy as np
from utils import *
from nn import B
from draw import draw
import time
def chunker(seq, size):
return (seq[pos:pos + size] for pos in range(0, len(seq), size))
year = MAX_YEAR - 1
df = pd.read_pickle('data_final.p')
latitude = np.array(df.index.get_level_values(1))
df.loc[:, 'latitude'] = pd.Series(latitude, index=df.index)
B.prepare_dataset(df, dataframe_to_dataset_biomes)
B.create_model([64, 128])
B.compile()
for change in range(-5, 6):
print('TEMPERATURE MODIFICATION OF {}'.format(change))
inputs = ['elevation', 'distance_to_water']
for season in SEASONS:
inputs += [
'temp_{}_{}'.format(season, year),
'precip_{}_{}'.format(season, year)
]
inputs += ['latitude']
frame = df[inputs]
print(frame.head())
# for season in SEASONS:
# frame.loc[:, 'temp_{}_{}'.format(season, year)] += change
# print(np.average(frame.loc[:, 'temp_winter_2016']))
# index = []
# for longitude in range(-179, 179):
# for latitude in range(-89, 89):
# index.append((longitude, latitude))
columns = ['biome_num']
new_data = pd.DataFrame(columns=columns)
for i, chunk in enumerate(chunker(frame, B.batch_size)):
input_data = normalize_ndarray(chunk.values)
out = B.predict(input_data)
new_index = np.concatenate((chunk.index.values, new_data.index.values))
new_data = new_data.reindex(new_index)
new_data.loc[chunk.index.values, 'biome_num'] = out
# print(new_data['biome_num'].unique())
draw(new_data)
# columns = ['biome_num']
# indices = ['longitude', 'latitude']
# new_df = pd.DataFrame(index=indices, columns=columns)
# new_df =