Suite

Écrire des tests pour cartodb

Écrire des tests pour cartodb


j'utilisecartodb.jsd'importer une de nos cartes viacartodb.createVis. Je travaille sur l'ajout de fonctionnalités personnalisées en dehors de la portée des personnalisations de la console Web (par exemple, des champs de recherche personnalisés).

Je veux écrire des tests de bout en bout pour les fonctionnalités de cartodb. Je souhaite sélectionner des marqueurs spécifiques, déclencher des événements de clic sur eux, puis m'attendre à des modifications du DOM et de la carte. Je souhaite également pouvoir tester l'apparition ou la disparition de "marqueurs" ou d'éléments cartographiques

Le problème est que je ne peux pas utiliser de sélecteurs pour accéder à des marqueurs individuels ou à l'une des fonctionnalités fournies par la "visualisation" en dehors de la barre de recherche et du sélecteur de calque. Je n'ai pas pu construire les sélecteurs CSS appropriés, et le sélénium n'enregistrera pas les actions de clic sur les éléments de la carte (à l'exception des double-clics sur les tuiles de la carte, qui provoquent un zoom et ne me sont pas utiles).

Je peux tester l'existence d'une tuile en utilisant un sélecteur pour son image. Cela ne fonctionne pas car :

a) toute légère modification de la visualisation modifie ce lien et casse le test (je ne suis pas sûr que le lien soit fiable même si on ne change pas la visualisation)

b) Je ne peux pas tester l'existence d'éléments cartographiques spécifiques (par exemple, des marqueurs).

Comment puis-je écrire des tests pour notre visualisation ?

Mettre à jour: j'ai essayé d'utiliserlayer.trigger('featureClick'…comme décrit ici et ici, mais cela échoue en silence. Je ne sais pas si cela compte, mais contrairement à ce Gist, j'ai plusieurs couches et mes coordonnées ne sont pas aussi précises.

J'essaie également de déclencher des clics de marqueur à l'aide de Seleniumcliquez surméthode. Pour cela, j'utilise l'exemple ici que j'ai essayé:td> cliquez sur //div[@id='map']/div 601, 230Cela échoue silencieusement.

cliquez sur //img[contient(@src,'http://3.ashbu.cartocdn.com/documentation/api/v1/map/c60783e45b3de44d88d22b74986b35f6:0/6/31/24.png">


Fondamentalement, vous ne pouvez pas tester les marqueurs en les sélectionnant à l'aide du sélecteur DOM car les marqueurs sont rendus dans des images sur le serveur, puis affichés dans le navigateur.

La « bonne » façon de tester les marqueurs serait :

1 - charger la carte avec la visualisation

2 - obtenir une image png du DOM où src se termine par "Z/X/Y.png">


Je voudrais vous recommander ce lien. Là, vous pouvez vérifier comment nous effectuons les tests pour CartoDB.js. Ainsi, vous trouverez de nombreux exemples de tests de visualisations.

Si vous exécutez SpecRunner.html, vous pouvez vérifier toute la suite de tests.


FIWARE Cygnus -> cartodb sinks.NGSISink : erreur de persistance, 400 demande incorrecte

J'essaie de connecter cygnus (1.4.0_SNAPSHOT) à cartodb. Je l'exécute localement et j'utilise un script pour envoyer une notification à cygnus. Le script s'exécute correctement, mais cygnus dit :

Quelqu'un sait ce qui peut arriver ? Ci-dessous je mets mes fichiers de config pour information, merci !

Mon nom d'utilisateur chez CARTO est "jcarneroatos", et le domaine est https://jcarneroatos.carto.com. Voici le script que j'utilise pour simuler la notification d'Orion Context Broker :

Voici la structure de l'ensemble de données sur cartodb :

Voici le fichier de configuration cygnus :

Et enfin le fichier cartodb_keys.conf (sans clé) :

Mettre à jour: Après avoir exécuté Cygnus en mode DEBUG et vérifié les logs, il semble que CARTO renvoie :


Pour partir d'un globe comme celui-ci.

une méthode sous la forme d'une équation mathématique pour étirer et déformer le grille lat/long du globe pour s'adapter à une carte planaire

Il existe de nombreuses façons de projeter le globe

Mais il n'y a aucun moyen de projeter le globe sans déformer il.

Distorsion est généralement pire sur les bords de la carte, affectant échelle relative.

Pour éviter les distorsions, de nombreuses projections sont spécialement conçu:
ils sont spécifiques à une zone, ou sont conçus pour la fonctionnalité (par exemple, la mesure des distances à partir d'un certain point).


13 avril 2015

Une visualisation expérimentale de la migration des oiseaux

Le problème

Chaque année, des centaines de millions d'oiseaux migrent vers et depuis leurs aires d'hivernage et de reproduction, parcourant souvent des centaines, voire des milliers de kilomètres deux fois par an. Beaucoup de ces individus effectuent des mouvements concentrés sous le couvert de l'obscurité, et souvent à haute altitude, ce qui rend extrêmement difficile le suivi précis du passage de ces animaux.

Cependant, un outil, le radar, a la capacité de mesurer le flux massique de migrants de jour comme de nuit à une résolution temporelle et spatiale qui ne peut être égalée par aucun autre outil de surveillance. Les radars de surveillance météorologique tels que ceux des réseaux EUMETNET/OPERA et NEXRAD surveillent et collectent en permanence des données en temps réel, surveillant les phénomènes météorologiques, mais aussi les dispersions biologiques (oiseaux, chauves-souris et insectes). Pour cette raison, le radar offre un outil unique pour collecter des données à grande échelle sur les mouvements biologiques. Cependant, la visualisation de ces données d'une manière complète qui facilite l'acquisition de connaissances, reste un défi.

Notre apport

Pour aider à relever ce défi, le Réseau européen de surveillance radar des mouvements d'animaux (ENRAM) a organisé le Bird Migration Visualization Challenge & Hackathon en mars 2015 avec le soutien du programme de coopération européenne en science et technologie (COST). Nous avons participé et exploré une approche particulière.

En utilisant des mesures radar de la biodiffusion (oiseaux, chauves-souris et insectes), les algorithmes peuvent estimer la densité, la vitesse et la direction du mouvement de migration à différentes altitudes autour d'un radar. En interpolant ces données à la fois spatialement et temporellement, et en les cartographiant géographiquement sous la forme de lignes de flux, une visualisation peut être obtenue qui offre un aperçu des schémas de migration lorsqu'elle est appliquée à un ensemble de données à grande échelle. Le résultat est une visualisation expérimentale interactive basée sur le Web qui charge dynamiquement les données de l'étude de cas donnée servie par le système CartoDB.

Un travail impressionnant avec des visualisations statiques et interactives !


5 réponses 5

  • Les réponses positives, lorsqu'elles sont justifiées, retirent rapidement les questions de la liste Sans réponse si elles ont un vote net de 0.
  • Les réponses négatives, lorsque cela est justifié, aident à pousser les questions de faible qualité vers le Roomba qui peut les supprimer du site (et donc de la liste des réponses sans réponse), si le vote de la communauté indique qu'elles ont peu de valeur.

Cela encourage les rédacteurs de bon contenu à continuer de contribuer, empêche les visiteurs de voir un contenu de mauvaise qualité et conduit généralement à un site avec principalement des questions claires avec des réponses claires, ce que nous recherchons tous lorsque nous avons un problème.

Une expression de recherche qui peut être utilisée pour trouver des questions avec uniquement des réponses qui n'ont pas de votes positifs nets (et apparaissent donc comme Sans réponse) est : réponses : 1 fermée : 0 est répondu : 0 a accepté : 0 (à partir de l'expression de recherche avancée pour trouver des questions avec réponse(s) quand aucune réponse n'a de votes positifs nets ?). Cependant, si vous l'utilisez, veuillez revoir la réponse (et la question à laquelle elle est appliquée) avant de la voter. Si cela ne justifie pas un vote positif, il peut être plus utile pour le site d'appliquer un vote négatif (si cela est justifié) à la place.

Y a-t-il quelque chose à dire sur les questions qui datent de plus de 5 ans, disons, qui est un commentaire sur leur pertinence ?

Si quelqu'un poste une question et qu'il n'y a pas de réponse pendant 1 an, voire plusieurs années, pour moi, cela signifie que la question n'est pas pertinente, appartient à un autre site/forum, ou n'a pas de réponse.

Dans tous les cas, soit le demandeur est passé à autre chose, a résolu son propre problème et n'a pas posté la réponse, soit n'a pas eu besoin de réponse pour terminer son travail.

Je rencontre des questions qui sont si obscures ou nécessitent une solution de contournement si bonne qu'elles n'obtiennent pas de réponse. Ceux-ci devraient-ils rester sur ce site de questions-réponses en tant que questions ouvertes ?

Je pense que nous devons nous attaquer à cela sur trois fronts.

  1. Une question sans réponse qui a un score positif : Un objectif pourrait être de rechercher votre tag spécifique auquel vous aimez répondre (pour moi, c'est qgis et pyqgis) et de rechercher des questions dans la section sans réponse qui ont des réponses et si elles sont bonnes pour les voter.
  2. Questions résolues par un commentaire : Dans ces cas, vous pouvez clairement voir que le PO pourrait résoudre son problème à l'aide d'un commentaire Je préconise la solution, que vous publiez le commentaire comme réponse.
  3. Des questions qui sont bonnes mais qui n'ont pas de réponse : répondez-y simplement si vous le pouvez.

Les options 1 et 2 sont pour moi les plus faciles à persuader, mais je ne sais pas combien de cas entrent dans ces catégories

GIS.SE est utilisé par certaines organisations/collectifs de logiciels comme une sorte de help-desk (je n'ai rien contre ça, c'est génial. ), mais je note qu'il y a une tendance à ce qu'une réponse soit donnée par quelqu'un de l'entreprise, et cette réponse n'a pas été votée. Il s'agit d'un comportement normal dans un environnement de service d'assistance

une demande arrive, une personne la récupère et y répond et aucun autre service d'assistance n'intervient.

Par exemple, cela semble être le cas avec CartoDB tel que :

Je me demandais s'il y avait un moyen d'encourager une sorte de vérification croisée (et de vote positif) dans de telles situations?

Une chose qui ouvre la voie pour avoir plus de réponses, et par conséquent, plus d'options pour voter est de soigneusement Éditer l'intégralité du message (même si cette modification "complète" dépend de l'obtention d'informations de l'OP via les commentaires). Malheureusement, il n'est pas rare dans notre communauté d'observer des publications seulement partiellement éditées (sous l'argument que toute édition est une édition valide, ce qui est le cas, mais cela coûte du temps de visibilité à partir des nouvelles réponses dans l'onglet actif).

Une autre action puissante consiste à prendre le temps d'organiser les publications canoniques (Q/A) et les liens/références doublons.

J'ai vu de bons résultats après avoir essayé de résoudre les problèmes ci-dessus en tenant compte des balises spécifiques :

Un exemple était l'expérience de « modération » de la balise de krigeage (les questions de krigeage reçoivent-elles suffisamment d'attention ?). Un temps considérable s'est écoulé depuis que j'ai essayé de nettoyer l'étiquette, mais le taux de non-réponse s'est maintenu à <30% depuis lors (il était auparavant >40%).

L'autre exemple est le lidar, dont je suppose qu'après avoir aidé à le conserver de plus près, il a également augmenté l'activité des autres intervenants. Par exemple, en paramétrant la requête SEDE pointée dans la réponse de PolyGeo ici pour les 108 balises les plus peuplées, cette balise a le taux le moins sans réponse (6,12 %) après le calculateur de champ.

Bien sûr, les balises que j'ai citées comportent un petit nombre de questions, mais je pense que l'idée peut également être extrapolée à des balises plus grandes.


SIG tout autour

ExifTool est également disponible sous forme de exécutable Windows autonome et un Paquet Macintosh OS X: (Notez que ces versions contiennent uniquement l'exécutable et n'incluent pas la documentation HTML ou d'autres fichiers de la distribution complète ci-dessus.)

OPENFORIS – Solutions open source gratuites pour la surveillance environnementale

OPENFORIS – Solutions open source gratuites pour la surveillance environnementale

Open Foris est un ensemble d'outils logiciels gratuits et open source qui facilite la collecte, l'analyse et le reporting de données flexibles et efficaces.

GÉOTAG

Avis important : si vous avez installé Java 7 Update 51 ou une version ultérieure et rencontrez des problèmes avec les paramètres de sécurité, veuillez rechercher une solution ici.

Géolocaliser est un programme open source qui vous permet de faire correspondre les informations de date/heure des photos avec les informations de localisation d'une unité GPS ou d'une carte

Portable Geotag est écrit en Java et fonctionne sur les systèmes d'exploitation les plus courants. Interface utilisateur graphique L'interface utilisateur facilite l'ajout d'informations de localisation à vos photos. Correspondance intelligente Les algorithmes de Geotag associent automatiquement les données GPS à vos photos. Pour les photos prises lorsque votre GPS n'avait pas de signal, vous pouvez laisser Geotag faire une estimation en fonction des informations GPS disponibles les plus proches. Affiner la localisation à l'aide de Google Maps Vous pouvez afficher l'emplacement d'une photo dans votre navigateur Web à l'aide de Google Maps. La carte contient un marqueur que vous pouvez faire glisser sur la carte pour modifier l'emplacement associé à une photo. L'emplacement que le GPS enregistre pour votre photo est l'emplacement où vous avez pris la photo, et non l'emplacement de ce qui peut être vu sur la photo. En faisant simplement glisser le marqueur, vous pouvez corriger cela. Le changement est immédiatement reflété dans Geotag. Ajuster les emplacements à l'aide de Google Earth Vous pouvez également afficher l'emplacement d'une photo dans Google Earth, s'il est installé sur votre ordinateur. Lorsque vous déplacez la carte dans Google Earth, un marqueur pour l'emplacement de votre photo est constamment déplacé au centre de la carte et sa nouvelle position est renvoyée à Geotag. Attribuer des noms de lieux aux photos Pour les photos qui ont déjà un emplacement, Geotag peut rechercher des noms d'emplacement à proximité et les stocker avec l'image. Vous n'avez pas besoin d'un GPS pour utiliser Geotag Même si vous ne possédez pas d'unité GPS (ou si elle n'était pas allumée lorsque vous avez pris une photo), vous pouvez toujours attribuer un emplacement à la photo. Geotag affichera un emplacement par défaut sur la carte et vous pouvez faire glisser le marqueur et zoomer pour donner un emplacement à la photo. C'est un peu plus gênant que d'utiliser un GPS, mais pas trop difficile. Vous pouvez également saisir les coordonnées de localisation manuellement et les enregistrer sur vos photos. De nombreux formats de fichiers pris en charge Geotag prend en charge les fichiers JPEG/JPG et de nombreux fichiers RAW spécifiques aux fournisseurs de caméras. Les types de fichiers RAW actuellement pris en charge sont ARW (Sony), CR2 (Canon), DCR (Kodak), DNG (Adobe), ERF (Epson), MEF (Mamiya), MRW (Minolata), NEF (Nikon), NRW (Nikon ), ORF (Olympus), PEF (Pentax), RAF (Fuji), RAW (Panasonic), SR2 (Sony) et SRF (Sony). Open source Geotag est open source. Il est publié sous GPL (GNU General Public License). cela signifie que son utilisation est gratuite et que vous pouvez même obtenir le code source, le modifier et le redistribuer. Facilement traduisible Geotag peut facilement être traduit dans différentes langues. Le programme reconnaît la langue utilisée sur votre ordinateur et si une traduction pour cette langue est disponible, Geotag l'utilisera automatiquement. Actuellement, le programme connaît l'anglais, l'allemand, le danois, le néerlandais, le français, le portugais brésilien, le tchèque, l'espagnol, le polonais, le russe, le grec et le suédois. Les volontaires pour d'autres traductions sont toujours les bienvenus.

N'oubliez pas que ce projet est encore jeune. Il y a certainement des bugs dans le programme et des fonctionnalités manquantes.

EXTRAIT PHOTO GPS

Photo GPS Extract est un libre Outil logiciel compatible Windows pour visualiser rapidement la localisation GPS d'une photo JPG : il va lire les coordonnées de la photo et les afficher sur une carte Google. En savoir plus sur ce logiciel …

MAPILLAIRE

Modèle de données de flux SIG

Le projet de l'Initiative de Dynamique Géographique se termine officiellement le 30 juin 2006. Néanmoins, ce travail impliquant une partie de ma recherche de thèse, des mises à jour sporadiques se poursuivront sur le site de la FDMT. Je prévois également de rendre la licence plus libérale à l'avenir en raison du temps, cela n'arrivera probablement pas formellement avant la fin de l'été 2006. N'oubliez pas que tout le code des outils de modèle de données de flux est exposé dans ArcGIS/VBA, donc vous pouvez personnaliser les macros.

Outils de modèle :
Outils de modèle de données de flux v069m (ArcGIS mxd, 420k, lien)
—-
AIDE sur les outils de modèle de données de flux (html, lien 25k)
—-

Modèle de données:
Modèle de livre blanc (MS Word, 3,5 Mo, lien)
—-
Diagramme UML du modèle de flux v01 (GIF, 25k, lien)
—-

Liens:
Tobler’s Flow Mapper (lien)
NCGIA (lien)
CSISS (lien)
alanglennon.com (lien)

OUTILS DE RECHERCHE NUMÉRIQUES (DIRT) – Analyse spatiale


Langages de programmation pour la cartographie en ligne ?

Je souhaite mettre en ligne certains de mes projets de cartographie. Quelqu'un peut-il recommander des moyens de commencer ce processus intimidant?

html/css/javascript puis commencez à regarder les bibliothèques javascript telles que brochure.js et three.js

Si vous n'avez pas le temps d'apprendre une langue et de tout faire à partir de zéro, jetez un œil à certains des plugins QGIS qui font tout pour vous.

Je recommande le plugin QGIS Cloud et qgistoleaf.

Découvrez également certains des cours ouverts de Penn States

Merci, ces ressources sont le type d'informations que je cherchais!

Une autre bonne chose à propos de l'apprentissage de Javascript sur le front-end est que vous pouvez également l'écrire sur le back-end avec Node.js si vous le souhaitez, en particulier pour les choses géospatiales ! Cela nécessitera plus de connaissances (ou du moins différentes) que les éléments frontaux, mais cela vous donnera le pouvoir d'héberger vos propres cartes et de maintenir vos propres bases de données.

Côté backend, je suis fan de Python/Django. Il offre une excellente prise en charge géographique et facilite la création de services Web pour les frameworks front-end javascript tels que les brochures.

La courbe d'apprentissage est suffisamment douce pour être accessible, mais cette configuration est également puissante et flexible.

Familiarisez-vous avec les fondamentaux de JavaScript.

Explorer le JavaScript Bibliothèques de mappage (Leaflet, OpenLayers, CartoDB.js, Mapbox.js) CartoDB.js et Mapbox.js sont construits sur Leaflet, donc vraiment comprendre Leaflet va être très utile.

HTML et CSS sont ce dont vous avez besoin pour structurer et styliser votre page, mais fondamentalement, ceux-ci vont simplement s'accrocher à votre JavaScript, qui est le langage qui rendra et contrôlera votre carte.

Ainsi, JavaScript et Leaflet sont très importants à comprendre. L'utilisation de quelque chose comme CartoDB ou Mapbox, en particulier leurs didacticiels et leur documentation, vous permettra de démarrer rapidement. Avec ceux-ci, vous pourrez créer une carte interactive en ligne en quelques minutes. Ensuite, lorsque vous atteignez un point où vous souhaitez plus de contrôle pour personnaliser vos cartes, vous commencerez à approfondir leurs bibliothèques JS.

J'aime beaucoup la Map Academy de CartoDB. Une autre excellente ressource est Codeacademy et Eloquent JavaScript.
Enfin, si vous avez un chapitre Maptime local, vous devriez le rejoindre totalement. Il s'agit d'un groupe destiné aux débutants pour l'enseignement et l'apprentissage de la cartographie Web.


Félicitations aux diplômés MSA 2015 !

Une autre année s'est écoulée et une autre « génération » de géographes professionnels a obtenu notre diplôme de maîtrise en analyse spatiale (MSA). Félicitations aux 17 finissants de la promotion Automne 2015!

Les 17 diplômés de la MSA après la collation des grades de l'automne 2015 (crédit photo : Vadim Sabetski)

Les étudiants MSA sont tenus de mener un projet de recherche indépendant qui est documenté dans un document de recherche majeur. Ce MRP est formellement défendu et révisé par la suite avant l'obtention du diplôme. Les MRP de cette année couvrent la gamme d'applications du développement durable, le plan de transport en commun SmartTrack de Toronto, la vente au détail d'aliments et les paysages alimentaires, les emplacements des services de santé, les réseaux de succursales bancaires, les tendances de la criminalité, les îlots de chaleur urbains et le logement. Les méthodes choisies par les étudiants comprennent l'exploration visuelle des données, la régression multiple, l'analyse décisionnelle multicritère, la modélisation du terrain à risque, les cartes auto-organisées et bien d'autres.

Les résumés des 17 principaux articles de recherche suivants sont disponibles sur la page d'accueil du programme MSA à l'adresse http://www.ryerson.ca/graduate/programs/spatial/abstracts/index.html. Les superviseurs sont indiqués entre parenthèses.

  • Kaylin Chin : Évaluer le développement durable à travers les États-Unis en continu : Application des indicateurs de développement durable des Nations Unies (Dr Shaker)
  • Kiyomi French : Analyse des emplacements des centres de distribution pour un grand détaillant au Canada (Prof. Swales)
  • Adrien Friesen : Évaluation de la station Smart Track à Toronto : prévision de l'achalandage et analyse de faisabilité des zones de chalandise des stations (Dr S. Wang)
  • Alexa Hinves : Développer une méthodologie pour mesurer l'accès aux services : une étude de cas sur l'accès aux services de vente au détail d'aliments dans la ville de Toronto (Dr Hernandez)
  • Elmer Lara Palacios : La structuration sociale et spatiale du stress au Canada (Dr L. Wang)
  • Jacob Levy : Une analyse spatiale de la répartition des diplômés internationaux en médecine en exercice au Canada, en Ontario et à Toronto (Dr L. Wang)
  • Daniel Liadsky : Explorer les paysages alimentaires de Toronto : mesurer l'environnement alimentaire et les comportements alimentaires sains (Dr Ceh)
  • Bernardo Melendez : Analyse du changement dans les réseaux de succursales bancaires dans la RMR de Toronto (Dr S. Wang)
  • Jessica Miki : PySAL, un cadre de développement open source pour l'analyse spatiale des données de santé (Dr. Vaz)
  • Nicia Moran : Sélection de sites à l'aide de systèmes d'information géographique et d'un modèle de décision multicritère (Prof. Swales)
  • Tyler Munn : Analyse spatiale des appels au 911 STEMI pour les services paramédicaux de Toronto (Dr L. Wang)
  • Ricardo Sanchez : Transformation de la vente au détail de livres au Canada (Dr S. Wang)
  • Maxwell Stiss : Tendances de développement des commerces de détail au rez-de-chaussée et des immeubles de taille moyenne le long des ‘Avenues’ de la ville de Toronto de 2010 à 2014 (Dr Hernandez)
  • Shannon Strelioff : Examen des prédicteurs de vols au niveau de la rue à Durham, en Ontario, à l'aide de la modélisation statistique et du terrain à risque (Dr L. Wang)
  • Kirk Suitor : L'analyse spatio-temporelle des prix des logements à Toronto (Dr Kedron)
  • Christine Valancius : Comparer la capacité de refroidissement des espaces verts dans les zones suburbaines et urbaines à l'aide du LST et du NDVI (Dr. Forsythe)
  • Yishi Zhao : Analyse par grappes des blessures à l'aide de cartes auto-organisées – Une étude de cas du Golden Horseshoe étendu (Dr. Vaz)

Parmi les réalisations de la classe MSA de l'automne 2015 se trouve la médaille d'or Ryerson de Daniel Liadsky, décrite à http://www.ryerson.ca/news/news/General_Public/2051019-gold-medal-recipient-to-bring-technical -skills-to-nonprofit-sector.html, ainsi que la 2e place de Yishi Zhao au concours de cartographie étudiante National Geographic (l'annonce officielle n'a toujours pas été publiée) et son prix de distinction MSA, présenté au Département de géographie et de l'environnement Soirée de remise des prix des études le 4 novembre 2015.

Je voudrais également noter que quatre étudiants prolongent leur phase de recherche MSA d'un ou deux semestres pour rédiger une thèse MSA. La première étudiante à terminer cette option, Heather Hart, a obtenu son diplôme au printemps 2015 avec une thèse sur les « Maps as Evidence in Health Care Service Improvement and Monitoring » (sous la direction du Dr Rinner), qui a également été récemment ajoutée à la liste à http://www.ryerson.ca/graduate/programs/spatial/abstracts/index.html.


CartoDB aime les données ouvertes

Alors que de plus en plus de gouvernements et d'entreprises adoptent des politiques et des programmes proactifs de données ouvertes, l'infrastructure de publication de données devient de plus en plus importante. La tradition séculaire de la publication de données lisibles par machine basées sur des fichiers sur le Web est toujours bien vivante, mais bases de données en direct et accessibles par API peut aider lors de la publication de données mises à jour fréquemment ou si volumineuses que leur publication sous forme de fichiers devient inefficace. Heureusement pour vous, si vous avez un compte CartoDB, vous avez déjà un base de données en direct accessible par API a ta disposition! Lisez la suite pour découvrir comment CartoDB peut vous aider à faire briller vos données ouvertes.

Avec CartoDB, toutes les données que vous importez deviennent une véritable table de base de données PostgreSQL. Nous ne parlons pas de Postgres enfoui profondément dans la pile avec une jolie interface utilisateur le masquant (notre interface utilisateur est en effet jolie), vous avez un accès direct à la base de données et pouvez exécuter toutes les requêtes SQL que vous voulez dessus. Le volet SQL de l'interface utilisateur de CartoDB est l'endroit où la plupart des gens commencent à interagir avec leurs tables, mais il est également accessible via notre
API SQL.

C'est bien beau, mais si je veux que d'autres personnes aient accès à mes données… pour les rendre un peu plus… ouvertes ? CartoDB a la notion de tables publiques, où un accès non authentifié aux opérations de lecture de base de données est disponible à la fois via notre interface graphique et via l'API SQL. Si vous définissez la confidentialité d'une table sur Publique, tout le monde peut accéder à ses différents liens de téléchargement ou exécuter des requêtes SELECT à sa guise. Cela fait de CartoDB le moyen le plus SIMPLE de passer d'un fichier sur votre ordinateur à une base de données publiée facilement accessible sur le Web.

###Un exemple : l'ensemble de données PLUTO de NYC

Le département de l'urbanisme de la ville de New York publie un ensemble de données cadastrales appelé PLUTO, qui contient une mine d'informations sur chaque lot fiscal de la ville. L'ensemble de données comprend des informations de zonage, le statut d'exonération fiscale, le nombre d'étages et un polygone détaillé pour chaque parcelle de terrain. Comme vous pouvez l'imaginer, il s'agit d'un très grand jeu de données et il comprend plus de 800 000 entités avec plus de 80 attributs chacune. Consultez notre propre visite guidée par Andrew Hill des données NYC PLUTO si vous souhaitez en savoir plus sur PLUTO).

La ville publie PLUTO sous forme de cinq ensembles de données distincts basés sur des fichiers, un pour chacun des cinq arrondissements, sur leur tristement célèbre site de données ouvertes « Bytes of the Big Apple ». Bien que ces morceaux soient plus digestes, ils sont toujours très gros en eux-mêmes. PLUTO n'est mis à jour que quelques fois par an, mais en raison de sa grande taille, il conviendrait parfaitement à la publication en tant que table publique CartoDB.

J'ai récemment consolidé les données PLUTO des 5 arrondissements dans une seule table CartoDB. Voici sa page de destination, qui affiche un aperçu tabulaire des données et une vue cartographique, vous permettant de vous familiariser rapidement avec l'ensemble de données. La page de destination publique inclut même des liens de téléchargement pour un accès en un clic à CSV, SHP, KML, GeoJSON et SVG !

Alors, en quoi est-ce mieux que de publier un seul gros fichier statique ? Entrez dans l'API SQL, où CartoDB devient vraiment puissant. Les liens de téléchargement de l'ensemble de données complet ci-dessus ne sont en réalité que "SELECT * FROM « requêtes exécutées sur l'API SQL, mais avec un peu plus de SQL, un utilisateur peut récupérer un sous-ensemble beaucoup plus spécifique de ce très grand ensemble de données. Les mêmes requêtes SQL que vous appliquez dans l'éditeur pour limiter les données à afficher dans votre carte peuvent également être utilisées pour télécharger des données brutes via l'API SQL :

Voici un appel d'API pour obtenir uniquement les 10 premières lignes :

Allez-y et cliquez dessus, vous récupérerez du JSON. Voici la même requête, mais demandant les données au format CSV au lieu de JSON :

Selon votre navigateur, cliquer sur le lien ci-dessus devrait vous permettre de télécharger un fichier.

Pour illustrer davantage cela, je vais fournir quelques exemples de cdbfiddle du même ensemble de données qui utilisent différentes requêtes SQL. Le même SQL utilisé pour définir la carte peut également être transmis à l'API SQL pour obtenir des données brutes.

### Obtenez tout dans le code postal 11201 (Downtown Brooklyn):

Voici la même requête qu'un appel d'API, en spécifiant le format geoJSON (encore une fois, selon votre navigateur, cliquer sur ce lien devrait lancer un téléchargement de fichier !) :

###Obtenez tout là où le zonage principal est Commercial :

Cette fois, récupérons un fichier de formes de l'API SQL :

Avec un peu de développement Web frontal, il est possible de créer une interface personnalisée pour ces données qui aide l'utilisateur à se concentrer sur un sous-ensemble spécifique des données à télécharger sans écrire du code SQL. Cet outil de téléchargement PLUTO fait exactement cela. L'interface utilisateur permet à l'utilisateur de choisir une zone géographique, un ensemble d'attributs et un format. Dans les coulisses, il crée une requête SQL et l'envoie à CartoDB, qui fournit les données à la demande !

Le gros point à retenir pour cet article de blog est que vous ne devriez pas considérer CartoDB aussi simplement comme un outil de rendu de carte, il sert des données brutes avec autant d'élégance et d'efficacité que les tuiles de carte.

Mais qu'en est-il du catalogue ? CartoDB fournira une liste de vos tables publiques sur votre page de profil public. Ce n'est certainement pas un substitut à un catalogue de données ouvert entièrement préparé avec des métadonnées conformes aux normes, mais cela relie toutes les tables publiques de votre compte et les rend un peu plus détectables.

L'option « à la main » si vous n'avez pas trop d'ensembles de données à gérer serait simplement de créer une page sur votre site Web ou votre blog avec des liens vers la page de destination de chaque table CartoDB, des informations sur les ensembles de données et un aperçu de carte intégré.

Une autre option pour le côté catalogue de l'équation est CKAN (actuellement utilisé par data.gov et de nombreux autres programmes de données ouvertes dans le monde), où vous pouvez rapidement configurer une liste de données qui se trouvent dans une table publique CartoDB. Nous avons même travaillé sur un script qui peut créer par programme une liste d'ensembles de données CKAN pour une table CartoDB, en ajoutant un nom, une description et des ressources pour les différents liens de téléchargement de l'API SQL. Data.gov a développé une extension CKAN qui ajoute la fonctionnalité [Ouvrir dans CartoDB] à toutes leurs listes de jeux de données, permettant l'importation de données en un clic dans le compte CartoDB d'un utilisateur. Ontodia, un cabinet de conseil en données ouvertes de New York et partenaire de CartoDB, a également développé une intégration CKAN plus étroite qui permet le clonage de données entre la banque de données CKAN et CartoDB, et l'inclusion de cartes CartoDB dans une page de jeu de données CKAN.

###Tables publiques == Tables publiées

Lorsque vous rendez public l'un de vos jeux de données CartoDB, vous l'avez essentiellement publié. Les téléchargements sont à portée de clic et l'accessibilité de l'API est facile à l'aide d'anciennes instructions SQL. Il suffit de quelques étapes supplémentaires pour documenter et faire connaître votre table publique, que ce soit sur une page statique, un catalogue de données ou via un outil de téléchargement personnalisé.


Peinture par code hexadécimal

Avec chaque colonne nommée et tapée correctement, il est temps de créer enfin des visualisations ! Avant de passer directement à l'utilisation de Torque, j'ai pensé que j'expérimentais un peu avec quelques visualisations de base “static” en utilisant les fonctionnalités SQL et CartoCSS de CartoDB’s. Quelque chose de facile pour commencer a été de créer une carte mettant en évidence les parcelles par rapport aux arbres confirmés, un peu comme la carte principale sur PhillyTreeMap.org :

[iframe width=�%’ height=�′ src=’http://azavea-maps.cartodb.com/u/azavea/viz/0d741ca0-a734-11e4-a898-0e9d821ea90d/ embed_map?sw_lat=39.92895792815383&sw_lon=-75.21995544433594&ne_lat=39.99079933583801&ne_lon=-75.05516052246094′]

Le CartoCSS nécessaire pour cette carte était assez simple. J'ai commencé avec l'assistant de visualisation des couleurs et j'ai légèrement modifié sa sortie pour créer des marqueurs plus larges pour les arbres que les parcelles (pour les mettre davantage en valeur) et en faire deux couleurs différentes (un vert et un orange, que j'ai recherchés depuis Color-hex .com). Il est facile de distinguer ces enregistrements et d'appliquer un style CartoCSS différent à chacun en testant la valeur de la colonne “tree_present” :

Dans ma prochaine visualisation, je pensais analyser un peu les données à l'aide de la fonction de requête SQL de CartoDB. Il est important pour OpenTreeMap de connaître l'espèce de chaque arbre, afin qu'il puisse calculer les divers avantages écologiques de cet arbre (et de tous les arbres de la forêt urbaine dans son ensemble) à l'aide de la recherche USFS sur i-Tree Streets . Pourtant, nous avons beaucoup d'arbres entrés sur PhillyTreeMap.org sans aucune information sur les espèces. Il est facile pour les utilisateurs d'identifier les espèces d'arbres à l'aide d'OpenTreeMap intégré dans la clé d'arbre dichotomique et l'ajout d'espèces aux arbres peut être un moyen amusant de fournir des données essentielles et nécessaires à la carte, en particulier dans les zones où la plupart des arbres ont déjà été “mapped.” Mais où les utilisateurs peuvent-ils trouver des quartiers ou des zones où l'on manque d'informations sur les espèces ? Saisissez une visualisation d'intensité :

[iframe width=�%’ height=�′ src=’http://azavea-maps.cartodb.com/u/azavea/viz/1098a462-a736-11e4-bfa5-0e4fddd5de28/ embed_map?sw_lat=39.86020895357945&sw_lon=-75.4925537109375&ne_lat=40.107487419012415&ne_lon=-74.83337402343749′]

À partir de cette visualisation de l'intensité, nous pouvons dire que le canton de Lower Merion et quelques régions de South Philly et de Fairmount seraient de bons endroits pour que quelqu'un puisse pratiquer ses compétences d'identification d'espèces ! J'ai créé cette carte en appliquant la visualisation d'intensité de CartoDB “wizard,”, mais en ajoutant du code SQL personnalisé pour ne visualiser que les enregistrements où il y avait un arbre présent (colonne tree_present = 1) et cet arbre n'avait pas d'espèce enregistrée pour lui (la colonne species_id est nulle) :

Enfin, je voulais expérimenter avec la visualisation d'informations sur des espèces spécifiques. Ma première tentative a été simple : il suffit d'appliquer l'assistant de visualisation des couleurs de CartoDB :

[iframe src=”http://azavea-maps.cartodb.com/u/azavea/viz/0637786c-a737-11e4-a1a8-0e018d66dc29/embed_map?sw_lat=39.914476331396216&sw_lon=-75.35179138ne_183594285.0ampne&ne_lat=39.914476331396216&sw_lon=-75.35179138ne_183594285.0ampne ″ largeur=�%” hauteur=�″]

J'ai légèrement modifié le CartoCSS pour diminuer l'accent mis sur les parcelles et les enregistrements de groupes d'espèces non majeurs en rendant leurs marqueurs gris, plus petits et transparents :

Cette carte était un peu géniale. First of all, the Color visualization wizard limited me to the ten most numerous species codes which it would visualize automatically. Second, it picked a distinctive but decisively non-botanical color ramp, coloring some species shades of blue and purple. Though they certainly had a sense of humor in Sacramento at last year’s Partners in Community Forestry conference, trees aren’t normally supposed to be blue. Finally, lopped in that gray “others” category were both plots et trees with no associated species info. I was visualizing two different types of record and not being clear about it – the visualization (incorrectly) implied a higher number of trees without species info by lobbing in the plot data as well. So I tried a new visualization with a bit more SQL and CartoCSS customization:

[iframe src=”http://azavea-maps.cartodb.com/u/azavea/viz/5aba41ec-a739-11e4-8cb2-0e018d66dc29/embed_map?sw_lat=39.914476331396216&sw_lon=-75.33805847167969&ne_lat=40.03812939078128&ne_lon=-75.00846862792969″ width=�%” height=�″]

In this attempt, I wanted to be intentional about what colors I chose for what trees, and leave plots out of the mix. Essentially, I was going for a rough approximation of, “What does Philadelphia look like in full fall colors?” By manually modifying the CartoCSS, I wasn’t limited to only 10 colors, but the more colors you add, it gets harder and harder to keep them distinctive. The best way to visualize species, I decided, would still be to assign color values to the most common varieties – every species above about 1,000 records or so. I ran some SQL against my table and sorted the results to find the most common species:

Because we have a lot of Red maples, Sugar maples, and Northern Red Oaks, and they’re all red in the fall, I could keep them the same color and still be “accurate” in my artistic depiction here. Hues of yellow and green for trees like the Callery Pear, Honeylocust, Eastern White Pine, Ginkgo, and a splash of pink Flowering Dogwoods rounded out many of my other CartoCSS choices. All other records, I set a default very, very transparent gray again:

I was pretty happy with these visualizations. With some wizards, a bit of SQL and the really powerful CartoCSS language, I had easily visualized my large PhillyTreeMap dataset in a variety of ways almost as pretty as the trees themselves.