Concernant les clients web pour l'accès aux données, vous pourrez également accéder par vos propres moyens à partir des sources existantes :
La bibliothèque est installée localement par le script install.sh
, mais vous pouvez également l'installer depuis une copie du répertoire github via pip install -e lib)
. Ne pas oublier de la réinstaller après un git pull dans le cas où elle aurait changé.
Portic:
Toflit :
Utils :
Portic:
Toflit :
Les fonctions Portic et Toflit sont appelées respectivement depuis portic_client et toflit_client. Les fonctions utils sont appelables directement.
Si des paramètres spécifiques peuvent être utilisés, ils sont décrit dans la doc spécifique à chaque fonction.
import networkx as nx
import requests
import csv
import json
# liste des imports possibles
from poitousprint import Portic
from poitousprint import Toflit
from poitousprint import nest_toflit18_flow
from poitousprint import nest_portic_pointcall
from poitousprint import build_cooccurence_graph
from poitousprint import get_pointcalls_commodity_purposes_as_toflit_product
from poitousprint import get_online_csv
from poitousprint import get_pointcalls_port_as_toflit_partner
from poitousprint import get_pointcalls_homeport_as_toflit_partner
portic_client = Portic()
toflit_client = Toflit()
pouvant être appelées depuis portic_client
Paramètres généraux pouvant être appliqués à (presque) toutes ces méthodes :
nom | type | valeurs | défault | description |
---|---|---|---|---|
params | liste de chaînes | ('all', ... tous les noms de params) | all | attributs à intégrer dans la réponse |
format | chaîne | ('json','csv') | json | format de la réponse |
shortenfields | booléen | (true, false) | false | permet de raccourcir les noms des attributs et donc d'alléger la taille du JSON téléchargé. |
both_to | booléen | (true,false) | false | permet de récupérer les données concernant l'arrivée d'un voyage en plus des données du départ (données par défaut). |
date | string format YYYY | (...années) | 1787 | pour filtrer les données sur une année donnée. L'année de la date d'arrivée ou de la date de départ doit commencer par ces 4 digits : 1787 ou 1789 par exemple. Exemple : http://data.portic.fr/api/pointcalls/?format=json&date=1789 |
zipped | booléen | (true, false) | false | ... |
Synopsis: récupère une liste de pointcalls selon les filtres et les paramètres spécifés.
Paramètres de requête spécifiques :
nom | type | valeurs | défault | description |
---|---|---|---|---|
start_year | <int/string> | année de début | ||
end_year | <int/string> | année de fin | ||
year | <int/string> | année exacte (l'emporte sur début/fin) |
+ tous les noms de propriétés des pointcalls pouvant être donnés en paramètres pour faire office de filtres (accepte une valeur unique, ou une liste de valeurs possibles pour que l'objet filtré soit valide - ex pointcall_admirality='La Rochelle'
)
from poitousprint import Portic
portic_client = Portic()
pointcalls_datasprint = portic_client.get_pointcalls(
source_subset = 'Poitou_1789',
)
""" équivalent à
pointcalls_datasprint = portic_client.get_pointcalls(
year = 1789,
pointcall_admiralty = ['La Rochelle', 'Marennes', 'Sables d\'Olonne']
)
"""
pointcall = pointcalls_datasprint[0]
# util pour organiser un pointcall en ensembles de clés thématiques
nest_portic_pointcall(pointcall)
Synopsis: Récupère les noms des variables Portic et leur description (pratique quand on ne sait plus ce qu'une colonne/propriété signifie)
Paramètres de requête spécifiques :
nom | type | valeurs | défault | description | ||
---|---|---|---|---|---|---|
API | 'pointcalls' | 'travels' | 'any' | 'any' | type de fieldnames à récupérer |
from poitousprint import Portic
portic_client = Portic()
portic_client.get_fieldnames()[0:1]
Synopsis:
Retourne une liste de flux, c'est-à-dire de voyages liés à des ports spécifiques, soit en y entrant (direction "in"), soit en en sortant (direction "out"), soit en ayant navigué autour (direction "in-out")
Attention, les flux sont reconstruits d'après plusieurs pointcalls en fonction de leur incertitude, et sont peu complets pour les données du datasprint. Il vaut mieux raisonner avec les pointcalls par défaut.
Paramètres de requête spécifiques :
nom | type | valeurs | défault | description |
---|---|---|---|---|
ports | list(string) | UHGS_id | 4326 | liste des ids de ports à filtrer (séparés par des virgules) |
+ tous les noms de propriétés des flows portic pouvant être donnés en paramètres pour faire office de filtres (accepte une valeur unique, ou une liste de valeurs possibles pour que l'objet filtré soit valide)
from poitousprint import Portic
portic_client = Portic()
flows = portic_client.get_flows(
ports = ['A0180923', 'A0152606'],
params =['distance_dep_dest', 'departure', 'departure_latitude', 'departure_longitude', 'destination', 'destination_latitude', 'destination_longitude']
)
flows[0:1]
Synopsis:
Récupère les données de trajectoires calculées.
Paramètres de requête spécifiques :
nom | type | valeurs | défault | description |
---|---|---|---|---|
from poitousprint import Portic
portic_client = Portic()
portic_client.get_travels(
departure_action='Out',
departure_ferme_direction='La Rochelle',
homeport_toponyme_fr=['Dieppe', 'Noirmoutier'],
ship_flag_standardized_en='French'
)[0:1]
Synopsis:
Récupère tous les ports aux alentours d'un point géographique donné.
Paramètres de requête spécifiques :
nom | type | valeurs | défault | description |
---|---|---|---|---|
lon | flottant | (minLon,maxLon) | ? | longitude du centre de la zone à requêter |
lat | flottant | (minLat,maxLat) | ? | latitude du centre de la zone à requêter |
radius | flottant | (0,?) | 100 ? | rayon en kilomètres |
from poitousprint import Portic
portic_client = Portic()
portic_client.get_departures_details(
lat = 46.166667, # latitude du port de La Rochelle
lon = -1.15, # longitude du port de La Rochelle
radius = 30
)[0:1]
Synopsis:
Retourne une aggrégation des amirautés de départ de voyages qui arrivent dans des points situés dans le voisinage (voir paramètre radius) du point requêté.
'label': amirauté de départ
'value': nombre de voyages partis de cette amirauté
Paramètres de requête spécifiques :
nom | type | valeurs | défault | description |
---|---|---|---|---|
lon | flottant | (minLon,maxLon) | ? | longitude du centre de la zone à requêter |
lat | flottant | (minLat,maxLat) | ? | latitude du centre de la zone à requêter |
radius | flottant | (0,?) | 100 ? | rayon en kilomètres |
from poitousprint import Portic
portic_client = Portic()
portic_client.get_destinations_aggregated(
lat = 46.2, # latitude du port de L'Ile de Ré
lon = -1.416667, # longitude du port de L'Ile de Ré
radius = 10
)[0:1]
Synopsis: Retourne une liste de ports_points au format JSON
Paramètres de requête spécifiques :
nom | type | valeurs | défault | description |
---|---|---|---|---|
srid | int | --- | --- | identifiant de référence spatiale unique associé à un système de coordonnées, une tolérance et une résolution spécifiques |
from poitousprint import Portic
portic_client = Portic()
resp = portic_client.get_ports(
srid = 4326
)
print(json.dumps(resp[0:5], indent=2))
pouvant être appelées depuis toflit_client
:
Synopsis : récupère les flux toflit18 tels que présentés au format CSV, avec possibilités de filtrage avancé.
Paramètres de requête spécifiques :
nom | type | valeurs | défault | description |
---|---|---|---|---|
start_year | <int/string> | None | année de début | |
end_year | <int/string> | None | année de fin | |
year | <int/string> | None | année exacte (l'emporte sur fin/début) | |
params | list | toutes les colonnes | propriétés à renvoyer |
+ tous les noms de propriétés des flux pouvant être donnés en paramètres pour faire office de filtres (accepte une valeur unique, ou une liste de valeurs possibles pour que l'objet filtré soit valide)
from poitousprint import Toflit
toflit_client = Toflit()
flows = toflit_client.get_flows(
start_year=1780,
end_year=1790,
customs_region='La Rochelle',
product_revolutionempire='Vins divers',
params=['customs_region', 'partner_simplification', 'product_revolutionempire', 'quantity', 'quantity_unit', 'customs_region_origin']
)
flows[0:1]
# util pour organiser un flow en ensembles thématiques (ne fonctionne que sur un flow avec params=all)
# flow = flows[0]
# nest_toflit18_flow(flow)
from poitousprint import Toflit
toflit_client = Toflit()
toflit_client.get_customs_regions()[0:1]
from poitousprint import Toflit
toflit_client = Toflit()
resp = toflit_client.get_product_classifications()
# removing children for the sake of logging
resp['children'] = None
print(json.dumps(resp, indent=2))
from poitousprint import Toflit
toflit_client = Toflit()
resp = toflit_client.get_partner_classifications()
# removing children for the sake of logging
resp['children'] = None
print(json.dumps(resp, indent=2))
from poitousprint import Toflit
toflit_client = Toflit()
toflit_client.get_classification_groups('partner_grouping')[0:5]
Synopsis :
Récupère le détail des groupements associés à une classification en particulier.
Paramètre d'URL classification
: le nom de la classification préfixé par son type (ex. "product_simplification", ou "partner_source")
from poitousprint import Toflit
toflit_client = Toflit()
toflit_client.get_classification_search('product_orthographic')[0:2]
Synopsis :
Récupère le réseau des lieux (directions et partenaires) et le montant de leurs échanges
Paramètre classification
: l'id de la classification de partenaire à utiliser
Paramètres de requête spécifiques :
nom | type | valeurs | défault | description |
---|---|---|---|---|
dateMin | entier | (années) | ? | année de début |
dateMax | entier | (années) | ? | année de fin |
kind | string | ('total', 'import', 'export') | 'total' | type de flux |
sourceType | string | (types de source) | ? | id du type de source à utiliser |
product | liste d'objets | (objects avec {{"id","name","value"}) | None | liste des produits à filtrer |
productClassification | string | (ids de classification) | None | Classification de produit à utiliser pour le filtre |
from poitousprint import Toflit
toflit_client = Toflit()
toflit_client.get_locations(
classification = 'partner_grouping',
dateMin = 1750,
dateMax = 1760,
kind = 'total',
sourceType = 'Best Guess national product x partner'
)[0:1]
Synopsis :
Récupère les flux par année par direction ou par type de source
Paramètre type
: le type de flux 'direction' ou 'sourceType'
Paramètres de requête spécifiques :
nom | type | valeurs | défault | description |
---|---|---|---|---|
dateMin | entier | (années) | ? | année de début |
dateMax | entier | (années) | ? | année de fin |
kind | string | ('total', 'import', 'export') | 'total' | type de flux |
sourceType | string | (types de source) | ? | id du type de source à utiliser |
partner | liste d'objets | (objects avec {"name","id"}) | None | les partenaires commerciaux à prendre en compte (e.g. {name: 'Alsace', id: 'Alsace~partner_orthographic'}) |
partnerClassification | string | (ids de classification) | None | Classification de partenaire à utiliser pour le filtre |
product | liste d'objets | (objects avec {{"id","name","value"}) | None | liste des produits à filtrer |
productClassification | string | (ids de classification) | None | Classification de produit à utiliser pour le filtre |
direction | chaîne | (noms de direction) | '$all$' | nom de la direction à filtrer |
from poitousprint import Toflit
toflit_client = Toflit()
toflit_client.get_flows_per_year(
type ='sourceType',
dateMin = 1750,
dateMax = 1780,
sourceType = 'National toutes directions partenaires manquants'
)
Synopsis :
Récupère des séries temporelles à propos des flux de marchandises
Paramètres de requête spécifiques :
nom | type | valeurs | défault | description |
---|---|---|---|---|
dateMin | entier | (années) | ? | année de début |
dateMax | entier | (années) | ? | année de fin |
kind | string | ('total', 'import', 'export') | 'total' | type de flux |
sourceType | string | (types de source) | ? | id du type de source à utiliser |
partner | liste d'objets | (objects avec {"name","id"}) | None | les partenaires commerciaux à prendre en compte (e.g. {name: 'Alsace', id: 'Alsace~partner_orthographic'}) |
partnerClassification | string | (ids de classification) | None | Classification de partenaire à utiliser pour le filtre |
product | liste d'objets | (objects avec {{"id","name","value"}) | None | liste des produits à filtrer |
productClassification | string | (ids de classification) | None | Classification de produit à utiliser pour le filtre |
direction | chaîne | (noms de direction) | '$all$' | nom de la direction à filtrer |
toflit_client.get_time_series(
direction = 'La_Rochelle'
)[0:2]
from poitousprint import Toflit
toflit_client = Toflit()
toflit_client.get_sources_types()
from poitousprint import Toflit
toflit_client = Toflit()
flows = toflit_client.get_flows(
year=1789,
product_orthographic='dentelle de soie'
)
flow = flows[0]
nest_toflit18_flow(flow)
from poitousprint import Toflit
toflit_client = Toflit()
pointcalls = portic_client.get_pointcalls(
year=1787
)
pointcall = pointcalls[0]
nest_portic_pointcall(pointcall)
Synopsis : Cette fonction prend un ensemble de dict (data) et deux noms de clés présents dans chaque dict. Elle renvoie un graphe networkx de coocurrence entre les dicts.
Paramètres de requête spécifiques (**kwargs) :
nom | type | valeurs | défault | description |
---|---|---|---|---|
color_1 | code rgb (string?) | rgb(0, 255, 0) | couleur des noeuds de type 1 | |
color_2 | code rgb (string?) | rgb(255, 0, 0) | couleur des noeuds de type 2 | |
node_min_size | int | 1 | taille min des noeuds | |
node_min_size | int | 10 | taille max des noeuds |
from poitousprint import Toflit
from poitousprint import build_cooccurence_graph
from ipysigma import Sigma
toflit_client = Toflit()
flows = toflit_client.get_flows(
start_year=1780,
end_year=1790,
customs_region='La Rochelle'
)
Graph = build_cooccurence_graph(flows, 'partner', 'product')
Sigma(Graph, start_layout=True)
Synopsis: Cette fonction permet de récupérer le contenu d'un csv en ligne. Pour les google spreadsheets: fichier > publier sur le web > format csv > copier le lien.
Bien mettre l'url sous forme de string dans les params
from poitousprint import get_online_csv
pointcalls_from_csv = get_online_csv('https://docs.google.com/spreadsheets/d/e/2PACX-1vSTh5UY2pCjlPQz2WzHhqeKbAqUHzBpetRZbM9C4SzWK4chFZlIOHLU_zVpMtY8n6kNH1k4hIgpXiRE/pub?gid=0&single=true&output=csv')
pointcalls_from_csv[0:1]
Synopsis : Cette fonction prend en entrée une liste de pointcalls et un nom de classification de produits ("product_simplification" par défaut). Elle renvoie en sortie la liste des dict de pointcalls enrichis avec une propriété "commodity_purposes" qui ont les propriétés existantes de PORTIC pour commodity_purpose[2,3,4] + une propriété "commodity_as_toflit qui donne la valeur correspondante dans toflit18.
from poitousprint import Portic
from poitousprint import get_pointcalls_commodity_purposes_as_toflit_product
portic_client = Portic()
pointcalls = portic_client.get_pointcalls(
year = 1789
)
with_toflit_products = get_pointcalls_commodity_purposes_as_toflit_product(pointcalls, product_classification='product_simplification')
with_toflit_products[0:1]
Synopsis : Cette fonction prend en entrée une liste de pointcalls et un nom de classification de partenaire ("partner_simplification" par défaut). Elle renvoie en sortie la liste des dict de pointcalls enrichis avec une propriété "pointcall_as_toflit_partner".
from poitousprint import Portic
from poitousprint import get_pointcalls_port_as_toflit_partner
portic_client = Portic()
pointcalls = portic_client.get_pointcalls(
year = 1789
)
get_pointcalls_port_as_toflit_partner(pointcalls, 'partner_grouping')[0:1]
Synopsis : Cette fonction prend en entrée une liste de pointcalls et un nom de classification de partenaire ("partner_simplification" par défaut). Elle renvoie en sortie la liste des dict de pointcalls enrichis avec une propriété "homeport_as_toflit_partner".
from poitousprint import Portic
from poitousprint import get_pointcalls_homeport_as_toflit_partner
portic_client = Portic()
pointcalls = portic_client.get_pointcalls(
year = 1789
)
get_pointcalls_homeport_as_toflit_partner(pointcalls, 'partner_simplification')[0:1]