Accessibilité des équipements & loisirs à Paris

Un site informatif responsive design conçu avec les données de l’Open data de la ville de Paris. Vous y trouverez uniquement les équipements gérés par la Ville de Paris pour lesquels la Ville a la responsabilité de la mise en accessibilité, par exemple uniquement les crèches municipales et non les crèches associatives, ou uniquement les lycées professionnels, gérés par la Ville, et non les lycées d’enseignement général, gérés par la Région.

Dans un premier temps, seuls sont traités dans cette carte les handicaps moteurs, auditifs et visuels, le handicap mental fera l’objet d’un recensement ultérieur. De même les services travaillent à l’accessibilité de la carte elle-même.

Sont définis comme accessibles les établissements où vous pouvez bénéficier du service proposé par l’établissement ou l’équipement, même si l’accès à la totalité des locaux n’est pas toujours possible.

Accessibilité des équipement de Paris »:
http://www.diouck.esy.es/accessibilite/accessibilite.html

accessibilite

accessibilité

 

Responsive design mobile

Responsive design mobile

#Monalisa2PostGIS: Importation de nombreux raster (Traitement par lots)

monalisa

Pour ceux qui travaillent avec Postgis de manière plus ou moins fréquente ,  si vous avez des difficultés d’intégration de plusieurs raster en même temps, voici un  script batch  qui fera office d’ETL. Évidemment les applications sont multiples par exemple regrouper plusieurs dalles d’ortho ou d’images satellites et calculer des indices de végétation.

Le scripte peut être exécuté sans problème malgré un nombre important de raster ( Tester sur un dossier de 50 dalles de 1km).  Voici les paramètres à modifier:

  1- D’abord définir les paramètres de connections

REM Parametre de connections
set PGPORT=5432 
set PGHOST=localhost
set PGUSER=postgres
set PGPASSWORD=postgres

2- Définir les  exécutables de postgres

REM  chercher le programme 
cd "C:\Program Files\PostgreSQL\9.5\bin"

3- Transformer en SQL l’image dans le schéma raster

Monalisa est disponible sur sa page  wikipedia

raster2pgsql   -d -I -C -e -Y   -s 4326   -t 128x128    "C:\raster\monalisa\*.jpg"  raster.monalisa >    "C:\raster\monalisa.sql" 
Avec -d pour supprimer la table si elle existe
-C pour la créer si elle n'existe pas
-I pour créer un overview
-s pour la projection et -t pour le tuilage

4- Importer le SQL dans la base de donnee bdu

psql -d bdu -f "C:\raster\monalisa.sql"

Pour info le script bat est disponible ici

5- Et visualiser votre résultat sur Qgis.

 

 

 

 

 

#Postgres / #PostGIS: Importation de nombreux shapefiles (Traitement par lots)

       Pour ceux qui travaillent avec Postgis de manière plus ou moins fréquente ,  si vous avez des difficultés d’intégration de plusieurs shapefiles en même temps, voici un  script batch  qui fera office d’ETL.

     Il peut être exécuté sans problème malgré un nombre important de shapefiles ( Tester sur un dossier de 55 shp ).  Voici les paramètres à modifier:

  • D’abord définir les variables vers les shp, et exécutables de postgres
set PATH_SHP="C:\Users\ABDOU\shapefiles"
set PATH_PSQL=C:\Program Files\PostgreSQL\9.5\bin\psql.exe
set PATH_SHP2SQL=C:\Program Files\PostgreSQL\9.5\bin\shp2pgsql.exe
set PATH_SQL="C:\Script_Abdou\shp\shp2pgsql\sql"
  • Les variables pour les paramètres de connexions
set pghost=votre host exemple localhost
set pgport=5432
set pgdb=votre base de données
set pgsrid= votre système de projection exemple 2154
set pggeom= le nom de votre colonne géométrique exemple geom
set pgencoding="CP1252"
set pgschema= le schema ou importer les shp
  • La procédure d’exécution pour chaque shp
REM "Parcourir le dossier et créer un fichier sql pour chaque shp "
for %%f in (%PATH_SHP%\*.shp) do "%PATH_SHP2SQL%" -s %pgsrid%   -g %pggeom% -d -D -i -I -W %pgencoding% %%f %pgschema%.%%~nf > %PATH_SQL%\%%~nf.sql

REM "Parcourir le dossier sql et intégrer les fichiers SQL dans la base de données Postgres et créer un fichier log pour chaque données intégrées"
for %%f in (%PATH_SQL%\*.sql) do "%PATH_PSQL%" -h %pghost% -p %pgport% -d %pgdb% -L %%~nxf.log -U %pguser% -f %%f

REM " Supprimer tous les fichiers sql dans le dossier SQL "
for %%f in (%PATH_SQL%\*.sql) do del %%f

Après ces changements enregistrer le fichier au format .bat
Exemple  shapefiles2postgis.bat
Double cliquer sur le fichier .bat pour l’exécuter
Et attendre les résultats ….🙂

Pour plus de détails le fichier est disponible ici

Mise en place d’un système de routage et de calcul d’itinéraires intégrable à PostgreSQL/PostGIS : « Pgrouting »

Dijkstra voiture direction 2.png

 

Il existe de nombreuses recherches sur l’utilisation des algorithmes de pgRouting pour l’analyse du plus court chemin et le calcul des isochrones. PgRouting est une extension de PostgreSQL et PostGIS. Il fournit divers algorithmes comme All Pairs Short Path, Bi-directional Dijkstra, and A*, Shortest Path y compris Turn Restriction, Driving Distance etc… et d’autres fonctions d’analyses de graphes.

Les fonctions pgRouting sont basées sur les coûts, qui sont dynamiques par opposition coûts de pré-calculés et peuvent donc s’appliquer à différents types de scénarios réels sur un réseau routier.

En dépit de la diversité des possibilités offertes par pgRouting pour l’analyse d’un réseau, et malgré d’intenses recherches sur la toile, il existe peu d’exemples sur la réalisation d’isochrones parfaites ou sur la gestion multimodale des coûts (vitesses/temps) sur un réseau.

La plupart des tutoriels ou des recherches existantes se concentrent essentiellement sur sa facilité d’utilisation, sur la recherche du plus court chemin qui elle-même est basé sur la notion de coût.

Dans ce manuel, nous allons apprendre les différentes étapes de modélisation d’un réseau routier. Pour ce faire j’ai fait le choix de travailler uniquement avec des données gratuites d’OpenStreetMap au lieu des données d’IGN, TéléAtlas et autres qui sont payantes.

Nous allons donc voir aussi comment installer pgRouting, importer les données d’OpenStreetMap , créer un graphe planaire orienté et l’exploiter dans Qgis. Puis nous allons modéliser les coûts (voiture, peton, vélo et distance) en respectant le sens de la circulation. Je vous montrerai également comment créer des zones de chalandises ou isochrones.

Tutoriel accessible ici:

 

 

Le marché de l’immobilier de bureaux à Nantes Métropole, de 2007 à 2015

onita2015

Cette carte présente l’évolution des surfaces transactées sur le marché de l’immobilier tertiaire à Nantes Métropole, depuis 2007.
Chaque opération a été localisée sur la carte, et présente la surface transactée (en m2), l’état des bureaux (neuf ou seconde main) et la nature de la transaction (vente ou location).

Application accessible ici

Appli web développeé avec leaflet et inspirée de ce template  » leaflet timeline » disponible sur github ici. Pour rajouter des graphiques je vous renvoie vers les appi Google chart

Voici un exemple d’intégration

<script type="text/javascript">
  function drawVisualization() {
    //Raw data
    var data = google.visualization.arrayToDataTable([
      ['Années', 'Bureau de seconde main', 'Bureaux neufs',  'Bureaux neufs (Comptes propres et clé en main)'],
      ['2007',  39333,          48511,           0],
     ----
    ]);

    var options = {
      title : 'Transactions neuves et de seconde main de 2007 à 2015 en milliers en m²',
      vAxis: {title: "Surface"},
      //legend: { position: "bottom" },
      //Horizontal axis text vertical
      hAxis: {title: "Années", slantedText:false, slantedTextAngle:10},
      seriesType: "bars",
      //series: {4: {type: "line"}},
      isStacked: true,
       colors:['#3DC2D5','#EC3858','#E83043','#C62939'],
      backgroundColor: { fill:'transparent' },
      fontSize: 10,
    legend: {
    position: 'none',
    alignment: 'start',
    textStyle: {
     color: 'black',
     fontName: 'times',
     fontSize: 10
    } },
   tooltip: {
    isHtml: true,
    showColorCode: true,
    isStacked: true
   }
    };

   // var chart = new google.visualization.BarChart(document.getElementById('chart_div'));
     var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));

    
    chart.draw(data, options);
  }
  google.setOnLoadCallback(drawVisualization);
</script>

 

#pgRouting : Schéma Directeur d’Accessibilité voirie et espace public de Nantes Métropole (SDA)

1.      Cadre de la demande

La politique menée par Nantes Métropole en faveur de l’accessibilité depuis de nombreuses années.  La volonté d’aller au-delà du cadre réglementaire dans la construction d’un territoire accessible pour toutes et tous) en favorisant au maximum la continuité de la chaine de déplacement.  La réalisation d’un document cadre stratégique issu de l’expertise urbaine et de la concertation des usagers, permettant d’objectiver les décisions. La constitution, à terme, d’un SIG accessibilité, guide pour les futurs travaux d’aménagements de la Métropole.

2.      Objectifs

Identifier les itinéraires susceptibles d’être utilisés de façon prioritaire par des personnes à mobilité réduite (et de manière générale par les piétons) à travers la ville, du domicile au lieu de travail, d’achat, de loisirs, …Définir le volume des cheminements à diagnostiquer sur le Territoire de Nantes Métropole (analyse du niveau d’accessibilité des itinéraires identifiés comme prioritaires)Aider à la priorisation de la mise en accessibilité des arrêts TC prévue dans le cadre de la Stratégie du SDAp’TC 2015-2020.

3.      Méthodologie

Application avec pgRouting

Cheminements sur voirie, de moins de 300 mètres, reliant les Etablissements Recevant du Public (ERP) aux stationnements réservés aux personnes à mobilité réduite ou aux arrêts de transport en commun les plus proches, ainsi que l’intégralité des Plans d’Accessibilité de la Voirie et de l’Espace Public (PAVE) élaborés par les communes

Schéma directeur d'Accessibilité de Nantes Métropole (SDA).png

Pour en savoir plus l’étude est accessible ici

Rapport dynamique: Liste des attributs d’une table dans #Postgre

Disposant d’une base de données GeoNework , je me suis interrogé sur comment intégrer la liste des attributs  d’une table dans  sa fiche de métadonnées. Et surtout comment les visualiser d’une manière dynamique.  Alors j’ai regardé du coté  PGAdmin, et oui on peut générer directement un rapport en html. Mais comment le rendre dynamique?

D’abord après de fructueuses recherches voici la requête qui me permet d’afficher pour une table donnée:  les attributs, les types, le nom de la table, les commentaires, s’il est rempli ou pas par défaut, la clef primaire…

Voici un exemple avec la table bâtiment dans le schéma majic (données foncières)


 SELECT a.attnum as numero,
 a.attrelid::regclass as table
 ,a.attname AS attribut
 ,format_type(a.atttypid, a.atttypmod) AS type
 ,a.attnotnull AS notnull
 ,coalesce(p.indisprimary, FALSE) AS primary_key
 ,f.adsrc AS default_val
 ,d.description AS commenatire
 FROM pg_attribute a
 LEFT JOIN pg_index p ON p.indrelid = a.attrelid AND a.attnum = ANY(p.indkey)
 LEFT JOIN pg_description d ON d.objoid = a.attrelid AND d.objsubid = a.attnum
 LEFT JOIN pg_attrdef f ON f.adrelid = a.attrelid AND f.adnum = a.attnum
 WHERE a.attnum > 0
 AND NOT a.attisdropped
 AND a.attrelid = 'majic_2014.d44_2014_batiment'::regclass -- A adapter
 ORDER BY a.attnum;
 

Voici le résultat:

majic.png

Et avec le rapport de pgAdmin(fichier/rapport rapide) ça donne ça:

rapport pgadmin.png

 

Alors tout ça c’est magique. Mais comment le rendre dynamique pour éviter de générer des milliers de pages tml? Je suis donc passé par du php pour transmettre des données par url.

Par exemple,  vous voulez afficher les attributs de la table « majic_2014.d44_2014_lotslocaux »   voici l’url à transmettre dans GeoNework :

http://localhost/developpement/rapport/rapport.php?table=majic_2014.d44_2014_lotslocaux
Vous remarquerez que la variable "table" permet de récupérer les attributs de la table que vous voulez afficher

Voici le résultat dans GeoNework :metadonnees.png

Voici le résultat :

rapport postgresql.png

Vous trouverez le code ici :

Évidemment vous pouvez également l’utiliser pour générer directement d’autres requêtes.

Pour plus de détails concernant la transmissions de variables ici