CEEU-lab / city_modeller

Urban dynamics performance assessment with data-driven modelling templates
GNU General Public License v3.0
0 stars 0 forks source link

Base de datos #15

Closed PyMap closed 11 months ago

PyMap commented 1 year ago

Hoy los datasets se levantan desde aca.

A medida que vayamos agregando nuevos templates, vamos a consumir más bases de datos. A la hora de correr la app (ya hosteada) estaría bien centralizar toda la data en un único lugar.

Una alternativa es usar un h5 con la data del modelo almacenada en un bucket de Google. Por ejemplo

if not os.path.exists('data/model_data.h5'):
    print('Downloading model_data')
    url = 'https://storage.googleapis.com/urbansim/da_model/data/536/model_data.h5'
    r = requests.get(url)
    with open('./data/model_data.h5', 'wb') as f:
        f.write(r.content)
else:
    print('Not downloading model_data.h5, since already exists')

Y crear una función para llamarlo, así

def hdfstore():
    return pd.HDFStore('data/model_data.h5', mode='r')

def bsas_streets(hdfstore):
    gdf = store['streets']
NMonnerSans commented 1 year ago

No me queda 100% clara la diferencia entre un h5 y tener los dfs sueltos en storage google y simplemente bajar los necesarios, pero no estoy casado con ninguna idea. Quizás lo más barato sea tener tablas en DBs. AWS al menos tiene tier gratuito de DB y tira un buen par de GB, pero de nuevo, eso es lo que sea más gratis, y más fácil.

PyMap commented 1 year ago

El h5 es un buen recurso para no tener que manipular muchos files. Pero se vuelve incómodo para actualizarlo. Son todos datasets públicos, con lo cual podríamos crear un bucket en GCS como sugeriste vos inicialmente @NMonnerSans y ya resolverlo rápido. Si es más práctico y nos permite avanzar más rápido puedo crear un directorio en alguno de los proyectos que tengo asociados a mi mail de UNSAM ahi en CGS y ya usamos eso para data/. Si me lo confirmás ya lo hago y te paso la ruta. Por ahí se puede poner el root en un config.yaml y llamar el path desde ahí.