Commit cfdd6e3d authored by Bastien Le Querrec's avatar Bastien Le Querrec

prise en charge des catégories

parent de07521d
......@@ -2,4 +2,5 @@ make:
./genFrCitiesData.sh
./genFrRegionsData.sh
./genFrDepartementsData.sh
./genBeCitiesData.sh
\ No newline at end of file
./genBeCitiesData.sh
./genTypes.sh
fr:
description: "Cette commune utilise le logiciel de vidéosurveillance automatisée « Briefcam »."
url: "https://technopolice.fr/briefcam/"
meta:
types:
- briefcam
fr:
description: "Outre un nombre très importants de caméras, Cannes déploie différents dispositifs de vidéosurveillance automatisée."
url: "https://technopolice.fr/cannes/"
meta:
types:
- briefcam
fr:
description: "Nice est un des principaux laboratoires en France de la Technopolice : « Safe City » de Thalès, vidéosurveillance automatisée, analyse d’émotion, reconnaissance faciale…"
url: "https://technopolice.fr/nice/"
meta:
types:
- vsa
fr:
description: "En 2020, la ville de Millau a utilisé ses caméras de vidéosurveillance pour identifier et sanctionner, sans contrôle physique, plusieurs manifestant·es."
url: "https://technopolice.fr/millau/"
meta:
types:
- autre
fr:
description: "Depuis 2018, la ville d’Istres s’est équippées de drones de surveillance et les utilise principalement pour la surveillance des manifestations."
url: "https://technopolice.fr/istres/"
meta:
types:
- drones
fr:
description: "Parmi les dispositifs de Technopolice à Marseille : un « Observatoire Big Data de la tranquillité publique » depuis 2017 et, depuis 2020, un système de vidéosurveillance automatisée."
url: "https://technopolice.fr/marseille/"
meta:
types:
- vsa
fr:
description: "Cette commune utilise le logiciel de vidéosurveillance automatisée « Briefcam »."
url: "https://technopolice.fr/briefcam/"
meta:
types:
- briefcam
fr:
description: "Cette commune utilise le logiciel de vidéosurveillance automatisée « Briefcam »."
url: "https://technopolice.fr/briefcam/"
meta:
types:
- briefcam
fr:
description: "En 2019, la ville de Dijon a inauguré son projet de « Smart City » : OnDijon, dont la logique repose sur la captation et la centralisatisation d’un maximum de données issues de la ville – dont les caméras de vidéosurveillance."
url: "https://technopolice.fr/dijon-ondijon/"
meta:
types:
- vsa
fr:
description: "En juin 2019, il a été annoncé que la ville de Lannion, en Bretagne, souhaitait expérimenter des «&nbsp;<em>capteurs de smartphones dans les rues pour suivre à la trace les trajets des piétons</em>&nbsp;»."
url: "https://technopolice.fr/lannion/"
meta:
types:
- capteurs_sonores
fr:
description: "Cette commune utilise le logiciel de vidéosurveillance automatisée «&nbsp;Briefcam&nbsp;»."
url: https://technopolice.fr/briefcam/
meta:
types:
- briefcam
fr:
description: "Cette commune utilise le logiciel de vidéosurveillance automatisée «&nbsp;Briefcam&nbsp;»."
url: "https://technopolice.fr/briefcam/"
meta:
types:
- briefcam
fr:
description: "En 2017, la ville de Toulouse a signé un contrat avec IBM pour équiper ses caméras de vidéosurveillance d’un logiciel de détection d’«&nbsp;évènements anormaux&nbsp;»."
url: "https://technopolice.fr/toulouse/"
meta:
types:
- vsa
fr:
description: "La ville de Montpellier utilise notamment le logiciel de police prédictive «&nbsp;Map Revelation&nbsp;»."
url: "https://technopolice.fr/montpellier/"
meta:
types:
- police_predictive
fr:
description: "En 2019, la ville de Sète a indiqué vouloir doubler son parc de caméras, installer 1000 capteurs et mettre en place un système d’hypervision."
url: "https://technopolice.fr/sete/"
meta:
types:
- vsa
fr:
description: "Parmi divers projets technopoliciers, la ville de Rennes utilise des drones depuis 2018 pour surveiller notamment les manifestations."
url: "https://technopolice.fr/rennes/"
meta:
types:
- drones
fr:
description: "En 2016, ce village de moins de 8000 habitant·es a décidé de s’équiper d’une soixantaine de caméras de vidéosurveillance et d’utiliser le logiciel de vidéosurveillance automatisée de Briefcam."
url: "https://technopolice.fr/briefcam/"
meta:
types:
- briefcam
fr:
description: "Cette commune utilise le logiciel de vidéosurveillance automatisée «&nbsp;Briefcam&nbsp;»."
url: "https://technopolice.fr/briefcam/"
meta:
types:
- briefcam
fr:
description: "En 2019, la ville de Saint-Etienne a voulu expérimenter la pose de microphones dans un quartier de la ville."
url: "https://technopolice.fr/saint-etienne/"
meta:
types:
- capteurs_sonores
fr:
description: "Cette commune utilise le logiciel de vidéosurveillance automatisée «&nbsp;Briefcam&nbsp;»."
url: "https://technopolice.fr/briefcam/"
meta:
types:
- briefcam
fr:
description: "La ville d’Angers utilise le système de police prédictive «&nbsp;Map Revelation&nbsp;»."
url: "https://technopolice.fr/blog/la-police-predictive-progresse-en-france-exigeons-son-interdiction/"
meta:
types:
- police_predictive
fr:
description: "Cette commune utilise le logiciel de vidéosurveillance automatisée «&nbsp;Briefcam&nbsp;»."
url: "https://technopolice.fr/briefcam/"
meta:
types:
- briefcam
fr:
description: "En février 2020, un dispositif de reconnaissance faciale a été expérimenté à l’entrée du stade de Metz."
url: "https://technopolice.fr/metz/"
meta:
types:
- rf
fr:
description: "Cette commune utilise le logiciel de vidéosurveillance automatisée «&nbsp;Briefcam&nbsp;»."
url: "https://technopolice.fr/briefcam/"
meta:
types:
- briefcam
fr:
description: "La ville de Lille utilise le système de police prédictive «&nbsp;Map Revelation&nbsp;»."
url: "https://technopolice.fr/blog/la-police-predictive-progresse-en-france-exigeons-son-interdiction/"
meta:
types:
- police_predictive
fr:
description: "En 2020, Roubaix a inauguré un nouveau centre de supervisation urbaine et a indiqué utiliser le logiciel de vidéosurveillance automatisé Briefcam."
url: "https://technopolice.fr/roubaix/"
meta:
types:
- briefcam
fr:
description: "En 2017, Valenciennes a signé un contrat avec Huawei pour installer 217 caméras dites «&nbsp;de nouvelle-génération&nbsp;»."
url: "https://technopolice.fr/valenciennes/"
meta:
types:
- vsa
fr:
description: "Le site d’Eurotunnel - Getlink, basé à Coquelles, est surveillé par des drones et plusieurs centaines de caméras."
url: "https://technopolice.fr/eurotunnel/"
meta:
types:
- drones
- vsa
fr:
description: "La commune de Strasbourg expérimente la vidéosurveillance automatisée, la vidéoverbalisation et, depuis plusieurs années, des capteurs sonores liés aux caméras de vidéosurveillance."
url: "https://technopolice.fr/strasbourg/"
meta:
types:
- vsa
- capteurs_sonores
fr:
description: "La ville de Lyon utilise le système de police prédictive «&nbsp;Map Révelation&nbsp;»."
url: "https://technopolice.fr/blog/la-police-predictive-progresse-en-france-exigeons-son-interdiction/"
meta:
types:
- police_predictive
fr:
description: "Cette commune utilise le logiciel de vidéosurveillance automatisée «&nbsp;Briefcam&nbsp;»."
url: "https://technopolice.fr/briefcam/"
meta:
types:
- briefcam
fr:
description: "La ville de Villeurbanne utilise le système de police prédictive «&nbsp;Map Revelation&nbsp;»."
url: "https://technopolice.fr/blog/la-police-predictive-progresse-en-france-exigeons-son-interdiction/"
meta:
types:
- police_predictive
fr:
description: "Cette commune utilise le logiciel de vidéosurveillance automatisée «&nbsp;Briefcam&nbsp;»."
url: "https://technopolice.fr/briefcam/"
meta:
types:
- briefcam
fr:
description: "Parmi les nombreuses expérimentations de Technopolice à Paris&nbsp;: le projet «&nbsp;Safe City&nbsp;» avec Thalès, la vidéosurveillance automatisée dans le métro par la RATP et l’usage des drones par la préfecture de police"
url: "https://technopolice.fr/paris/"
meta:
types:
- vsa
- drones
fr:
description: "En 2020, la ville de Rouen a décidé de lutter contre le harcèlement en installant dans les transports en commun un dispositif de vidéosurveillance automatisée et des capteurs sonores."
url: "https://technopolice.fr/rouen/"
meta:
types:
- vsa
- capteurs_sonores
fr:
description: "Depuis 2014, cette commune a signé de nombreux partenariats avec l’entreprise Genetec pour développer diverses solutions de «&nbsp;Safe City&nbsp;»."
url: "https://technopolice.fr/elancourt/"
meta:
types:
- autre
fr:
description: "La ville de Montauban utilise le système de police prédictive «&nbsp;Map Revelation&nbsp;»."
url: "https://technopolice.fr/blog/la-police-predictive-progresse-en-france-exigeons-son-interdiction/"
meta:
types:
- police_predictive
fr:
description: "La ville de Epinay-sous-Sénart a utilisé ses caméras de vidéosurveillance pour identifier et sanctionner, sans contrôle physique, plusieurs habitant.es pour non-respect du confinement."
url: "https://technopolice.fr/essonne/"
meta:
types:
- autre
fr:
description: "La ville d’Igny a annoncé en 2018 une expérimentation de vidéosurveillance automatisée avec la société SNEF."
url: "https://technopolice.fr/igny/"
meta:
types:
- vsa
fr:
description: "La ville de Colombes utilise le système de police prédictive «&nbsp;Map Revelation&nbsp;»."
url: "https://technopolice.fr/blog/la-police-predictive-progresse-en-france-exigeons-son-interdiction/"
meta:
types:
- police_predictive
fr:
description: "En septembre 2017, il a été annoncé que le département des Yvelines comptait s’équiper «&nbsp;de caméras intelligentes capables de détecter automatiquement les incidents&nbsp;»."
url: "https://technopolice.fr/yvelines/"
meta:
types:
- vsa
fr:
description: "En PACA, la région a voulu installer des portiques de reconnaissance faciale à l’entrée de deux lycées. Le tribunal administratif de Marseille a considéré cette expérimentation illégale en 2020."
url: "https://technopolice.fr/reco-faciale-lycees/"
meta:
types:
- rf
fr:
title: "Autre"
fr:
title: "Briefcam"
meta:
depends_on:
- vsa
\ No newline at end of file
fr:
title: "Capteurs sonores"
fr:
title: "Drones"
fr:
title: "Police prédictive"
fr:
title: "Reconnaissance faciale"
fr:
title: "Vidéosurveillance automatisée"
#!/usr/bin/env bash
set -e
declare -A types_list=()
mkdir -p "./.cache/be/communes/"
echo "var geoDataCitiesBe = {\"type\":\"FeatureCollection\",\"features\":[" > geo-data-cities-be.js
echo -n "" > geo-data-cities-be.js
for file in ./data/be/cities/*.yml; do
[ -f "$file" ] || continue
......@@ -20,12 +24,32 @@ for file in ./data/be/cities/*.yml; do
nom=$(echo ${cache} | jq -c -r .records[0].fields.name)
marker=$(echo ${cache} | jq -c .records[0].fields.geo_point_2d)
geo=$(echo ${cache} | jq -c .records[0].fields.geo_shape)
if [ -z "$url" ]; then
echo "{\"type\":\"Feature\",\"properties\":{\"name\":\"$nom\",\"description\":\"$description\",\"marker\":$marker},\"geometry\":$geo}," >> geo-data-cities-be.js
categories=""
for type in $(cat $file | yq -c -r '.meta.types[]'); do
types="${types} ${type}"
types_list[$type]="city_be_${code},${types_list[$type]}"
if [[ $(cat ./data/meta/types/${type}.yml | yq -c -r '.meta') != 'null' ]] && [[ $(cat ./data/meta/types/${type}.yml | yq -c -r '.meta.depends_on[]') != 'null' ]]; then
for depends_on in $(cat ./data/meta/types/${type}.yml | yq -c -r '.meta.depends_on[]'); do
types="${types} ${depends_on}"
types_list[$depends_on]="city_be_${code},${types_list[$depends_on]}"
done
fi
categories="\"${type}\",${categories}"
done
if [ "$url" == "null" ]; then
echo "var city_be_${code} = L.geoJSON({\"type\":\"Feature\",\"properties\":{\"name\":\"$nom\",\"description\":\"$description\",\"marker\":$marker, \"categories\": [${categories}]},\"geometry\":$geo}, citiesProperties);" >> geo-data-cities-be.js
else
echo "{\"type\":\"Feature\",\"properties\":{\"name\":\"$nom\",\"description\":\"$description\",\"marker\":$marker,\"url\":\"$url\"},\"geometry\":$geo}," >> geo-data-cities-be.js
echo "var city_be_${code} = L.geoJSON({\"type\":\"Feature\",\"properties\":{\"name\":\"$nom\",\"description\":\"$description\",\"marker\":$marker, \"categories\": [${categories}],\"url\":\"$url\"},\"geometry\":$geo}, citiesProperties);" >> geo-data-cities-be.js
fi
sleep 1
ids="city_be_${code},${ids}"
done
echo "var typeCitiesBe = {" >> geo-data-cities-be.js
for type in $(echo $types | xargs -n1 | sort -u | xargs); do
echo " ${type}: [${types_list[$type]}]," >> geo-data-cities-be.js
done
echo "};" >> geo-data-cities-be.js
echo "]};" >> geo-data-cities-be.js
\ No newline at end of file
echo "var geoDataCitiesBe = [${ids}];" >> geo-data-cities-be.js
#!/usr/bin/env bash
set -e
declare -A types_list=()
mkdir -p "./.cache/fr/cities/"
echo "var geoDataCitiesFr = {\"type\":\"FeatureCollection\",\"features\":[" > ./geo-data-cities-fr.js
echo -n "" > ./geo-data-cities-fr.js
for file in ./data/fr/cities/*.yml; do
[ -f "$file" ] || continue
......@@ -21,11 +25,33 @@ for file in ./data/fr/cities/*.yml; do
lng=$(echo ${cache} | jq .[0].centre.coordinates[0])
lat=$(echo ${cache} | jq .[0].centre.coordinates[1])
geo=$(echo ${cache} | jq -c .[0].contour)
if [ -z "$url" ]; then
echo "{\"type\":\"Feature\",\"properties\":{\"name\":\"$nom\",\"description\":\"$description\",\"marker\":[$lat,$lng]},\"geometry\":$geo}," >> ./geo-data-cities-fr.js
categories=""
for type in $(cat $file | yq -c -r '.meta.types[]'); do
types="${types} ${type}"
types_list[$type]="city_fr_${code},${types_list[$type]}"
if [[ $(cat ./data/meta/types/${type}.yml | yq -c -r '.meta') != 'null' ]] && [[ $(cat ./data/meta/types/${type}.yml | yq -c -r '.meta.depends_on[]') != 'null' ]]; then
for depends_on in $(cat ./data/meta/types/${type}.yml | yq -c -r '.meta.depends_on[]'); do
types="${types} ${depends_on}"
types_list[$depends_on]="city_fr_${code},${types_list[$depends_on]}"
done
fi
categories="\"${type}\",${categories}"
done
if [ "$url" == "null" ]; then
echo "var city_fr_${code} = L.geoJSON({\"type\":\"Feature\",\"properties\":{\"name\":\"$nom\",\"description\":\"$description\",\"marker\":[$lat,$lng], \"categories\": [${categories}]},\"geometry\":$geo}, citiesProperties);" >> ./geo-data-cities-fr.js
else
echo "{\"type\":\"Feature\",\"properties\":{\"name\":\"$nom\",\"description\":\"$description\",\"marker\":[$lat,$lng],\"url\":\"$url\"},\"geometry\":$geo}," >> ./geo-data-cities-fr.js
echo "var city_fr_${code} = L.geoJSON({\"type\":\"Feature\",\"properties\":{\"name\":\"$nom\",\"description\":\"$description\",\"marker\":[$lat,$lng], \"categories\": [${categories}],\"url\":\"$url\"},\"geometry\":$geo}, citiesProperties);" >> ./geo-data-cities-fr.js
fi
ids="city_fr_${code},${ids}"
done
echo "var typeCitiesFr = {" >> geo-data-cities-fr.js
for type in $(echo $types | xargs -n1 | sort -u | xargs); do
echo " ${type}: [${types_list[$type]}]," >> geo-data-cities-fr.js
done
echo "};" >> geo-data-cities-fr.js
echo "]};" >> ./geo-data-cities-fr.js
\ No newline at end of file
echo "var geoDataCitiesFr = [${ids}];" >> geo-data-cities-fr.js
#!/usr/bin/env bash
set -e
declare -A types_list=()
mkdir -p "./.cache/fr/departements/geo_api_gouv_fr/"
mkdir -p "./.cache/fr/departements/france_geojson/"
mkdir -p "./.cache/fr/regions/geo_api_gouv_fr/"
echo "var geoDataDepartementsFr = {\"type\":\"FeatureCollection\",\"features\":[" > geo-data-departements-fr.js
echo -n "" > geo-data-departements-fr.js
for file in ./data/fr/departements/*.yml; do
[ -f "$file" ] || continue
......@@ -37,12 +41,32 @@ for file in ./data/fr/departements/*.yml; do
else
cache_geo=$(cat "./.cache/fr/departements/france_geojson/${code}.txt")
fi
if [ -z "$url" ]; then
echo "{\"type\":\"Feature\",\"properties\":{\"name\":\"$nom\",\"description\":\"$description\"},\"geometry\":$cache_geo}," >> geo-data-departements-fr.js
categories=""
for type in $(cat $file | yq -c -r '.meta.types[]'); do
types="${types} ${type}"
types_list[$type]="departement_fr_${code},${types_list[$type]}"
if [[ $(cat ./data/meta/types/${type}.yml | yq -c -r '.meta') != 'null' ]] && [[ $(cat ./data/meta/types/${type}.yml | yq -c -r '.meta.depends_on[]') != 'null' ]]; then
for depends_on in $(cat ./data/meta/types/${type}.yml | yq -c -r '.meta.depends_on[]'); do
types="${types} ${depends_on}"
types_list[$depends_on]="departement_fr_${code},${types_list[$depends_on]}"
done
fi
categories="\"${type}\",${categories}"
done
if [ "$url" == "null" ]; then
echo "var departement_fr_${code} = L.geoJSON({\"type\":\"Feature\",\"properties\":{\"name\":\"$nom\",\"description\":\"$description\", \"categories\": [${categories}]},\"geometry\":$cache_geo}, departementsProperties);" >> geo-data-departements-fr.js
else
echo "{\"type\":\"Feature\",\"properties\":{\"name\":\"$nom\",\"description\":\"$description\",\"url\":\"$url\"},\"geometry\":$cache_geo}," >> geo-data-departements-fr.js
echo "var departement_fr_${code} = L.geoJSON({\"type\":\"Feature\",\"properties\":{\"name\":\"$nom\",\"description\":\"$description\", \"categories\": [${categories}],\"url\":\"$url\"},\"geometry\":$cache_geo}, departementsProperties);" >> geo-data-departements-fr.js
fi
sleep 1
ids="departement_fr_${code},${ids}"
done
echo "var typeDepartementsFr = {" >> geo-data-departements-fr.js
for type in $(echo $types | xargs -n1 | sort -u | xargs); do
echo " ${type}: [${types_list[$type]}]," >> geo-data-departements-fr.js
done
echo "};" >> geo-data-departements-fr.js
echo "]};" >> geo-data-departements-fr.js
\ No newline at end of file
echo "var geoDataDepartementsFr = [${ids}];" >> geo-data-departements-fr.js
#!/usr/bin/env bash
set -e
declare -A types_list=()
mkdir -p "./.cache/fr/regions/geo_api_gouv_fr/"
mkdir -p "./.cache/fr/regions/france_geojson/"
echo "var geoDataRegionsFr = {\"type\":\"FeatureCollection\",\"features\":[" > geo-data-regions-fr.js
echo -n "" > geo-data-regions-fr.js
for file in ./data/fr/regions/*.yml; do
[ -f "$file" ] || continue
......@@ -28,12 +32,32 @@ for file in ./data/fr/regions/*.yml; do
else
cache_geo=$(cat "./.cache/fr/regions/france_geojson/${code}.txt")
fi
if [ -z "$url" ]; then
echo "{\"type\":\"Feature\",\"properties\":{\"name\":\"$nom\",\"description\":\"$description\"},\"geometry\":$cache_geo}," >> geo-data-regions-fr.js
categories=""
for type in $(cat $file | yq -c -r '.meta.types[]'); do
types="${types} ${type}"
types_list[$type]="region_fr_${code},${types_list[$type]}"
if [[ $(cat ./data/meta/types/${type}.yml | yq -c -r '.meta') != 'null' ]] && [[ $(cat ./data/meta/types/${type}.yml | yq -c -r '.meta.depends_on[]') != 'null' ]]; then
for depends_on in $(cat ./data/meta/types/${type}.yml | yq -c -r '.meta.depends_on[]'); do
types="${types} ${depends_on}"
types_list[$depends_on]="region_fr_${code},${types_list[$depends_on]}"
done
fi
categories="\"${type}\",${categories}"
done
if [ "$url" == "null" ]; then
echo "var region_fr_${code} = L.geoJSON({\"type\":\"Feature\",\"properties\":{\"name\":\"$nom\",\"description\":\"$description\", \"categories\": [${categories}]},\"geometry\":$cache_geo}, regionsProperties);" >> geo-data-regions-fr.js
else
echo "{\"type\":\"Feature\",\"properties\":{\"name\":\"$nom\",\"description\":\"$description\",\"url\":\"$url\"},\"geometry\":$cache_geo}," >> geo-data-regions-fr.js
echo "var region_fr_${code} = L.geoJSON({\"type\":\"Feature\",\"properties\":{\"name\":\"$nom\",\"description\":\"$description\", \"categories\": [${categories}],\"url\":\"$url\"},\"geometry\":$cache_geo}, regionsProperties);" >> geo-data-regions-fr.js
fi