world-ecoregion/predict.py
2019-03-05 15:23:29 +03:30

54 lines
1.3 KiB
Python

import numpy as np
from utils import *
from nn import B, compile_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.p')
compile_b()
for change in range(0, 1):
print('TEMPERATURE MODIFICATION OF {}'.format(change))
inputs = ['elevation', 'distance_to_water', 'latitude']
for season in SEASONS:
inputs += [
'temp_{}_{}'.format(season, year),
'precip_{}_{}'.format(season, year)
]
print(inputs)
# print(inputs)
frame = df[inputs + ['longitude']]
# print(frame.head())
for season in SEASONS:
frame.loc[:, 'temp_{}_{}'.format(season, year)] += change
columns = ['latitude', 'longitude', 'biome_num']
new_data = pd.DataFrame(columns=columns)
for i, chunk in enumerate(chunker(frame, B.batch_size)):
if chunk.shape[0] < B.batch_size:
continue
input_data = normalize_ndarray(chunk.loc[:, inputs].values)
out = B.predict(input_data)
f = pd.DataFrame({
'longitude': chunk.loc[:, 'longitude'],
'latitude': chunk.loc[:, 'latitude'],
'biome_num': out
}, columns=columns)
new_data = new_data.append(f)
draw(new_data)