Skip to content

Commit

Permalink
refactor datascripts close #17 address #34
Browse files Browse the repository at this point in the history
  • Loading branch information
robindemourat committed Sep 22, 2021
1 parent 359304f commit 1a4bcb5
Show file tree
Hide file tree
Showing 63 changed files with 274 additions and 20,522 deletions.
14 changes: 10 additions & 4 deletions datascripts/decline.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
from collections import defaultdict
import csv
from typing import Counter, DefaultDict
import os

def ensure_dir(path):
if not os.path.exists(path):
os.makedirs(path)

def output_row(region, year, region_trade, region_products, total_trade):
sum_imports = sum(value.get(
Expand Down Expand Up @@ -68,8 +72,8 @@ def output_row(region, year, region_trade, region_products, total_trade):
if flow['customs_region'] == "Bordeaux":
Bordeaux_products[year][flow['product_revolutionempire']
][flow['export_import']] += float(flow['value'])

with open("../public/data/decline_longitudinal_data.csv", "w") as of:
ensure_dir("../public/data/decline_longitudinal_data")
with open("../public/data/decline_longitudinal_data/decline_longitudinal_data.csv", "w") as of:
output_csv = csv.DictWriter(
of, ['region', 'year', 'Exports', 'Imports', 'Exports_share', 'Imports_share', 'product_revolutionempire_imports_herfindahl', 'product_revolutionempire_exports_herfindahl', 'product_revolutionempire_total_herfindahl'])
output_csv.writeheader()
Expand All @@ -87,14 +91,16 @@ def output_row(region, year, region_trade, region_products, total_trade):
'Imports_share': 100,
'Exports_share': 100
})
with open("../public/data/decline_LR_products.csv", "w") as of:
ensure_dir("../public/data/decline_LR_products")
with open("../public/data/decline_LR_products/decline_LR_products.csv", "w") as of:
output_csv = csv.DictWriter(
of, ['product', 'year', 'Exports', 'Imports'])
output_csv.writeheader()
output_csv.writerows({'product': product, 'year': year, 'Exports': value.get("Exports"), 'Imports': value.get("Imports")} for year, products in LaRochelle_products.items(
) if year in ['1750', '1789'] for product, value in products.items())

with open("../public/data/decline_LR_partners.csv", "w") as of:
ensure_dir("../public/data/decline_LR_partners")
with open("../public/data/decline_LR_partners/decline_LR_partners.csv", "w") as of:
output_csv = csv.DictWriter(
of, ['partner', 'year', 'Exports', 'Imports'])
output_csv.writeheader()
Expand Down
22 changes: 22 additions & 0 deletions datascripts/making_of_draft.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,3 +92,25 @@ Les données de cette visualisation sont tirées de la base Toflit18, et plus sp
Le fond de carte de la visualisation a été constitué en agrégeant de multiples sources et en les mettant en cohérence avec des méthodes de géomatique.

Les données visualisées sont tirées des flux enregistrés dans Navigo pour 1787 et concernant uniquement les navires dont le port d'attache est La Rochelle.


# Ports de départ des navires transportant du sel en 1789, agrégés par tonnage cumulé

Les données de cette visualisations ont tirées de la base de données Navigo. Plus précisément, il s'agit des indications de départs de port (*pointcalls* de sortie de port) mentionnant du sel en cargaison principale ou secondaire. La quantification est réalisée en fonction du tonnage cumulé des navires. Note : les navires pouvant transporter plusieurs marchandises différentes, le tonnage des navires ne doit pas être confondu avec la quantité de sel transportée, qui reste inconnue.

# Destination des navires partant de Marennnes en 1789, agrégées par pays et par tonnage cumulé

Les données de cette visualisations ont tirées de la base de données Navigo. Plus précisément, il s'agit des indications de départs (*pointcalls* de sortie de port) du port de Marennes en 1789. La quantification est réalisée en fonction du tonnage cumulé des navires.

# Évolution des exports d'eau-de-vie et liqueurs par la direction de La Rochelle (ports francs non pris en compte)

Les données de cette visualisation sont tirées de la base de données toflit18, et plus précisément des mentions d'exports vers l'étranger (ports francs non pris en compte) de produits tombant dans la catégorie "eaux-de-vie et liqueurs" de la classification "révolution & empire" de toflit18, pour la direction de La Rochelle. Les flux tirés de son groupe de sources "Best Guess customs region prod x partner" qui permettent de raisonner au niveau des directions des fermes (et non de l'ensemble de la France). La quantification est réalisée en fonction de la valeur des exports en livres tournois.

# Comparaison des exports d'eau-de-vie et liqueurs par différentes directions des fermes (ports francs non pris en compte)


Les données de cette visualisation sont tirées de la base de données toflit18, et plus précisément des mentions d'exports vers l'étranger (ports francs non pris en compte) de produits tombant dans la catégorie "eaux-de-vie et liqueurs" de la classification "révolution & empire" de toflit18, pour la direction de La Rochelle. Les flux tirés de son groupe de sources "Best Guess customs region prod x partner" qui permettent de raisonner au niveau des directions des fermes (et non de l'ensemble de la France). La quantification est réalisée en fonction de la valeur des exports en livres tournois.

# Origine des exports d'eau-de-vie de la direction des fermes de La Rochelle en 1789 (ports francs non pris en compte)

Les données de cette visualisation sont tirées de la base de données toflit18, et plus précisément des mentions d'exports vers l'étranger (ports francs non pris en compte) de produits tombant dans la catégorie "eaux-de-vie et liqueurs" de la classification "révolution & empire" de toflit18, pour la direction de La Rochelle. Les flux tirés de son groupe de sources "Best Guess customs region prod x partner" qui permettent de raisonner au niveau des directions des fermes (et non de l'ensemble de la France). La quantification est réalisée en fonction de la valeur des exports en livres tournois.
26 changes: 17 additions & 9 deletions datascripts/part3.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,11 @@
import csv
from operator import itemgetter
from random import random
import os

def ensure_dir(path):
if not os.path.exists(path):
os.makedirs(path)


# PORTS_DFLR = {"Saint-Denis d'Oléron", 'Saint-Gilles-sur-Vie', 'Noirmoutier', 'La Rochelle', 'Beauvoir-sur-Mer', 'Marans', 'Esnandes', 'Saint-Martin-de-Ré', 'La Tremblade', "Les Sables-d'Olonne", 'Tonnay-Charente', 'Rochefort', 'La Tranche-sur-Mer', "Saint-Michel-en-l'Herm", 'Marennes', 'Ribérou', 'Mortagne', 'Moricq', 'Royan', "Le Château-d'Oléron", 'La Perrotine', 'Soubise', 'Ars-en-Ré', 'Champagné-les-Marais', 'La Flotte-en-Ré'}
Expand Down Expand Up @@ -103,8 +107,10 @@ def correct_localities_alignment(port):
# OUTPUT1 : aims to feed step 1 of the main viz of part3


OUTPUT0 = "../public/data/ports_locations_data.csv"
OUTPUT1 = "../public/data/part_3_step1_viz_data.csv"
OUTPUT0 = "../public/data/ports_locations_data/ports_locations_data.csv"
OUTPUT1 = "../public/data/part_3_step1_viz_data/part_3_step1_viz_data.csv"
ensure_dir("../public/data/ports_locations_data/")
ensure_dir("../public/data/part_3_step1_viz_data/")

"""
VIZ 3.1 PREPARATION
Expand Down Expand Up @@ -195,8 +201,10 @@ def correct_localities_alignment(port):
})

# 3. write csv file to feed step 3 of the viz
OUTPUT3_PORTS = "../public/data/part_3_step3_viz_ports_data.csv"
OUTPUT3_OFFICES = "../public/data/part_3_step3_viz_customs_offices_data.csv"
OUTPUT3_PORTS = "../public/data/part_3_step3_viz_ports_data/part_3_step3_viz_ports_data.csv"
OUTPUT3_OFFICES = "../public/data/part_3_step3_viz_customs_offices_data/part_3_step3_viz_customs_offices_data.csv"
ensure_dir("../public/data/part_3_step3_viz_ports_data/")
ensure_dir("../public/data/part_3_step3_viz_customs_offices_data/")

def build_relevant_navigo_flows():
i = 0
Expand Down Expand Up @@ -278,7 +286,6 @@ def build_relevant_toflit_flows():
ports[port]['cumulated_tonnage_in_region'] += tonnage
bureaux_map[bureau]['cumulated_tonnage_in_region'] += tonnage
else:
# print("f['destination_ferme_direction'] : ", f['destination_ferme_direction'])
ports[port]['cumulated_tonnage_out_region'] += tonnage
bureaux_map[bureau]['cumulated_tonnage_out_region'] += tonnage
elif f['departure_province'] is not None: # dans ce cas là notre flow ne part pas de La Rochelle, besoin de distinguer cas bordeaux, nantes, le havre
Expand Down Expand Up @@ -470,8 +477,9 @@ def add_edge(g, source, target, tonnage):
for id in graph.nodes():
graph.nodes[id]["degree"] = graph.degree(id)


nx.write_gexf(graph, '../public/data/%s.gexf' % name)
print('name : ', name)
ensure_dir('../public/data/' + name + '/')
nx.write_gexf(graph, '../public/data/' + name + '/' + name + '.gexf')
return graph

def build_centrality_metrics(flows):
Expand Down Expand Up @@ -513,8 +521,8 @@ def build_centrality_metrics(flows):
"score": betweenness_centrality[port]
})
# betweenness_centralities += [{"group": port, "port": p, "betweenness_centrality": value} for (p, value) in betweenness_centrality.items()if graph.nodes[p]['internal'] == True]

with open('../public/data/part_3_centralite_comparaison.csv', 'w', newline='') as csvfile:
ensure_dir('../public/data/part_3_centralite_comparaison/')
with open('../public/data/part_3_centralite_comparaison/part_3_centralite_comparaison.csv', 'w', newline='') as csvfile:
fieldnames = metrics[0].keys()
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

Expand Down
2 changes: 1 addition & 1 deletion datascripts/retrieve_contents_fr.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ def prepare_contents(str):
elif i < 4:
md_path = TARGET_BASE + 'partie-' + str(i) + '.mdx'
elif i == 5:
print(part)
# print(part)
md_path = TARGET_BASE + 'a-propos.mdx'
else:
md_path = TARGET_BASE + 'references.mdx'
Expand Down
7 changes: 6 additions & 1 deletion datascripts/retrieve_part_2_main_viz_navigo_for_radar.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,14 @@
import csv
import sys
from collections import defaultdict
import os

def ensure_dir(path):
if not os.path.exists(path):
os.makedirs(path)

OUTPUT = "../public/data/part_2_navigo_viz_data.csv"
OUTPUT = "../public/data/part_2_navigo_viz_data/part_2_navigo_viz_data.csv"
ensure_dir("../public/data/part_2_navigo_viz_data/")

def clean_bureau_name(name, departure):
if departure == "Tonnay-Charente":
Expand Down
8 changes: 7 additions & 1 deletion datascripts/retrieve_part_2_main_viz_toflit_for_alluvial.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
import csv
from collections import defaultdict
import os

OUTPUT = "../public/data/part_2_toflit_viz_data.csv"
def ensure_dir(path):
if not os.path.exists(path):
os.makedirs(path)

OUTPUT = "../public/data/part_2_toflit_viz_data/part_2_toflit_viz_data.csv"
ensure_dir("../public/data/part_2_toflit_viz_data/")

relevant_flows = []
# retrieve relevant flows
Expand Down
Loading

0 comments on commit 1a4bcb5

Please sign in to comment.