-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ecoulement des cours d'eau #10
Conversation
La fonction de haut niveau get_all_observations fonctionne, mais le test avec pytest renvoie une erreur, je ne sais pas pourquoi. Je n'ai pas fait de fonction de haut niveau pour get_campagnes, car il n'y a que 8816 résultats, donc on est loin des 20 000. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@B-Alica je t'ai mis quelques commentaires par ci par là. Pour les tests, j'attends ton retour, je ferai une merge et je finaliserai ça en local.
Je serais aussi d'avis de mettre une fonction de haut niveau avec get_campagnes pour faire abstraction de l'objet session : même si on ne met rien de particulier dans le code, ça permettrait d'avoir une homogénéité d'API pour l'utilisateur final.
cl_hubeau/watercourses_flow/utils.py
Outdated
ranges = pd.date_range( | ||
start=datetime.strptime(kwargs.pop("date_observation_min"), "%Y-%m-%d").date(), | ||
end=datetime.strptime(kwargs.pop("date_observation_max"), "%Y-%m-%d").date(), | ||
) | ||
dates = pd.Series(ranges).to_frame("date") | ||
dates["year"] = dates["date"].dt.year | ||
dates = dates.groupby("year")["date"].agg(["min", "max"]) | ||
for d in "min", "max": | ||
dates[d] = dates[d].dt.strftime("%Y-%m-%d") | ||
if start_auto_determination: | ||
dates = pd.concat( | ||
[ | ||
dates, | ||
pd.DataFrame([{"min": "1900-01-01", "max": "2015-12-31"}]), | ||
], | ||
ignore_index=False, | ||
).sort_index() | ||
|
||
args = list(product(deps, dates.values.tolist())) | ||
|
||
with WatercoursesFlowSession() as session: | ||
|
||
results = [ | ||
session.get_observations( | ||
format="geojson", | ||
date_observation_min=date_min, | ||
date_observation_max=date_max, | ||
**{"code_departement": chunk}, | ||
**kwargs, | ||
) | ||
for chunk, (date_min, date_max) in tqdm( | ||
args, | ||
desc="querying station/station and year/year", | ||
leave=_config["TQDM_LEAVE"], | ||
position=tqdm._get_free_pos(), | ||
) | ||
] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Je n'obtiens pas le même nombre de résultats avec les trois méthodes :
- En utilisant directement l'API observation sur le site, j'obtiens 320597 résultats
- Avec mon ancienne méthode, j'obtenais 316714 résultats
- Avec ta fonction, j'obtiens 308268 résultats
J'ai ajouté une fonction de haut niveau get_all_campagnes, comme demandé. |
Note interne au 17/10/24 :
|
@B-Alica je pense que j'ai trouvé l'explication sur les lignes qui disparaissent, il semble y avoir une erreur sur l'API : |
# dates = pd.concat( | ||
# [ | ||
# dates, | ||
# pd.DataFrame([{"min": "1900-01-01", "max": "2015-12-31"}]), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@B-Alica sur ta boucle interne, > 99% des doublons créés sont liés à cette ligne : tu as laissé un 2015-12-31 ici, alors que l'initialisation en ligne 77 était au 01/01/1960.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mais ça n'explique pas les 50 doublons que j'ai toujours sur l'année 2023...
EDIT : pour être précis, il me reste 50 doublons sur 2023 et 18 sur 2012... 🙁
@B-Alica j'ai ouvert une seconde issue sur l'API : BRGM/hubeau#193 J'ai l'impression qu'elle produit nativement des doublons... Du coup je vais ajouter un |
@B-Alica |
Je n'ai fait que les fonctions de bas niveau car je ne sais pas quelle fonction de haut niveau faire.