Beispiel #1
0
def get_population_snapshot(iterations_id: int, n_snapshot: int) -> np.array:
    db_iter = MongoDBConnection.get_iterations_db()
    iter_obj = db_iter.find_one({'_id': iterations_id})

    populations_documents = MongoDBConnection.get_population_gridfs()

    file_id = iter_obj['snapshots_population_documents'][n_snapshot]
    with populations_documents.get(file_id) as f:
        population_objs = np.load(f)

    return population_objs
Beispiel #2
0
def get_population(iterations_id: int) -> List[np.array]:
    db_iter = MongoDBConnection.get_iterations_db()
    iter_obj = db_iter.find_one({'_id': iterations_id})

    populations_documents = MongoDBConnection.get_population_gridfs()

    population_objs = []
    for file_id in iter_obj['snapshots_population_documents']:
        with populations_documents.get(file_id) as f:
            population_objs.append(np.load(f))

    return population_objs
Beispiel #3
0
def save_population(iterations_id: int, whole_population: List[np.array]):
    db = MongoDBConnection.get_population_gridfs()

    gridfs_ids = [-1] * len(whole_population)
    for n_snapshot, population in enumerate(whole_population):
        with db.new_file() as f:
            gridfs_ids[n_snapshot] = f._id
            np.save(f, population)

    db_iter = MongoDBConnection.get_iterations_db()
    db_iter.update_one(
        {'_id': iterations_id},
        {'$set': {
            'snapshots_population_documents': gridfs_ids
        }})