• Technical know how

    Technical know how

  • Academic excellence

    Academic excellence

Looking for expertise in spatial analysis?

We provide flexible expert statistical and geo-spatial guidance for scientific teams and governmental agencies.


Consulting services
Consulting services

We have developed analytic processes and brought reliable and understandable evaluations on issues ranging from controlling deadly diseases to primary care access. Working for major actors such as the City of Philadelphia, PA, United States, or the Regional Ministry of Health in Areaquipa, Peru SpatialControl has produced a variety of deliverables, from reports to interactive websites.

Academic research
Academic research

Our team leader is currently a research faculty at the Institut National de la Recherche Agronomique (INRA), in France. Prior to this position he was a researcher for four years at the Perelman school of Medicine at the University of Pennsylvania. This prior work has led to over 10 academic papers in leading statistical and medical journals, gathering over 150 citations by academic pears.

Technical expertise
Technical expertise

The ability to implement multiple analytic techniques using several programming languages allows SpatialControl to imagine deliverables tailored for your needs. With over 10 years of experience in scientific calculus and expertise we insure optimal reliability, flexibility, reproducibility and development speed for our projects.

meld et dcast

Le reformatage de tables de données est une activité importante lors de la modélisation de grands jeux de données. Pour cela, mes dernières découvertes sont meld et dcast du package R reshape2 qui permettent de passer de données du format “large” au format “long” et réciproquement, éventuellement en synthétisant des lignes. Voir ici pour une visualisation rapide.

L’idée générale est de différencier trois types d’informations: les informations de référence permettant d’identifier l’individu statistique, les informations de mesure permettant d’identifier différentes mesures réalisées sur chaque individu et les valeurs mesurées elles-mêmes. Les individus correspondent toujours à plusieurs lignes mais les informations de type de mesure peuvent être données soit par différents niveaux dans une colonne + une colonne avec les valeurs de mesure pour toutes les mesures (type de données “long”), soit un titre de colonne par mesure et les mesures correspondantes dans chaque colonne (type de données “large”).

Les transports en commun sont une chance aussi pour ceux qui ne les utilisent pas !

En dehors de mes heures de travail je m’intéresse beaucoup, et depuis plus de 10 ans, à l’économie et plus particulièrement à la gestion de nos ressources énergétiques et de l’environnement. Conscient de quelques ordres de grandeurs je suis profondément choqué par l’atmosphère politico-sociale actuelle qui tend à considérer que les transports en commun, et en particulier le train, devraient être rentable. C’est une idée relativement nouvelle et complétement absurde parceque tout le monde bénéficie des transports en commun y compris, et peut-être surtout, ceux qui ne les utilisent pas ! Exiger des transports publics qu’ils soient rentables serait à la fois injuste et dévastateur pour tous. Au contraire, renforcer leur accessibilité et leur utilisation est une formidable chance, il en découle quelques mesures pratiques qui devraient s’imposer (ou que nous devrions imposer) au gouvernement actuel.

Tout d’abord, demander au train d’être rentable, en comptant dans le bilan le coût des voies, serait profondément injuste étant donné que les routes sont mises à disposition gratuitement alors qu’elles ont coûté de l’ordre de 15 milliards par an sur les 25 dernières années soit 250 euros par an et pour chacun des 60 millions de français. A comparer aux 3 milliards par an sur la même période pour les voies ferrées, soit 50€ par an et par français. Bien sûr, le train représente 1/5 des dépenses d’infrastructures pour 1/10 des kilomètres parcourus soit de l’ordre de 2 fois plus cher par kilomètre parcouru, mais quel est son impact sur notre santé, notre productivité et l’environnement ?

Ensuite, le train est extrêmement sûr : 67 morts en 18 ans dont plusieurs liés en fait à des dysfonctionnements de la circulation automobile … A comparer avec les 500 000 morts depuis 1945 en France sur les routes (l’équivalent du bilan de la 2de guerre mondiale). Bien sûr la sécurité routière s’est améliorée depuis 1945 mais 3 477 morts en 2016 font tout de même 100 fois plus de morts par kilomètre parcouru. Sachant qu’un bon quart des accidents mortels implique des piétions, privilégier le train est très clairement une question de sécurité publique !

Par ailleurs, ce n’est un secret pour personne, les voitures polluent, beaucoup. Et les transports en commun diminuent cette pollution de manière très importante comme le démontre par exemple le doublement de la pollution à Barcelone lors d’une grève de métro bien suivie. Et la pollution de l’air tue, beaucoup plus encore que les accidents de la route : 3 millions de morts prématurées dans le monde par an d’après l’OMS, 48 000 par an chaque année en France et c’est sans parler des multiples maladies respiratoires et même de la baisse des facultés intellectuelles et donc de la productivité si chère à nos élites. Privilégier le train est donc non seulement une question de sécurité publique mais aussi de santé publique à l’échelle nationale comme à l’échelle mondiale.

A l’échelle mondiale justement, le grand problème, on ne le répétera jamais assez c’est le réchauffement climatique qui est déjà bien amorcé : nous sommes bien en route pour nous prendre 4°C dans la tête, ce qui parle tout de suite plus si on se dit que 7°C dans l’autre sens c’était les dernières grandes glaciations avec il y a 150 000 ans le nord de l’Allemagne pris dans la calotte glaciaire et on pouvait traverser la manche à pied. Inversement si les glaces polaires fondent on peut se prendre (pas tout de suite mais à termes) plus de 70 m d’augmentation du niveau de la mer et pour rappel, le parvis de Notre-Dame de Paris est à 35 m d’altitude et Londres à 11m. Ce n’est donc pas que le Bengladesh qui pourrait être touché. Entre les déplacements de population et les troubles virant plus ou moins aux guerres, on risque d’exploser tous les compteurs déjà cités de nombre de morts … Et là encore la comparaison route/train est sans appel : pour un trajet de 20km domicile-travail c’est 10 fois moins d’émissions de CO2 en RER ou en métro qu’en voiture, et encore moins en tram.

Alors, automobilistes chéris, si tout cela ne vous suffit pas, pensez encore que des transports en commun de qualité, ça décongestionne en tout cas vos chères routes, la preuve les jours de grève. Alors demandons, exigeons de nos gouvernements à tous les niveaux de continuer à favoriser ces transports ferroviaires. En particulier la dette de la SNCF portant sur des infrastructures, largement décidées par les politiques de tous bords qui en ont (très justement) décidés ces dernières décennies, doit être reprise par l’État sans conditions pour préserver et encore favoriser cet incroyable service public que constitue la SNCF !

libPath in R fucked up

In case of libPath not working correctly, something like that should do the trick:

mkdir -p ~/R/x86_64-pc-linux-gnu-library/3.4

And add in ~/.Renviron

R_LIBS_USER=${R_LIBS_USER-‘~/R/x86_64-pc-linux-gnu-library/3.4’}

Remote graphics on linux server

So you have a great ubuntu server running somewhere and you want to display graphics from the server?

Visualize the current user desktop

That is actually really easy through VNC in ubuntu:

  1. On the server use Desktop sharing (simply enter “Desktop sharing” in the Dash)
    1. click on “Allow users to see your desktop”
    2. click on “Require … password” and set a password
    3. Give the ip address (click on the screen icon at the top of your screen to see it) and the password to the person
  2. On the (ubuntu) client
    1. start “Remote desktop viewer”
    2. select VNC protocol, enter IP address
  3. User on the server need to accept the connection

All set! I used these more complete instructions.

Open an independant graphic session

The problem with the vnc approach is that you cannot have two different users on the same server at the same time.
The best option I found for now is to use xRDP, the windows protocol. The set up is very well described here. Hereafter a short summary.

Server set up

It requires to install xrdp and xfce4 on the server, It’s quick, don’t worry:
sudo apt-get install xrdp xfce4 xorgxrdp

Then for each user allowed to connect simply run users terminal:
echo xfce4-session >~/.xsession

When done for all users, restart xrdp:
sudo service xrdp restart

Then give the ip to the users, you can get it in the terminal with hostname -I.

Client connection

  •  Windows: simply open “Desktop client”, enter your ip address and user name on the ubuntu machine
  • Ubuntu: I recommand installing Remmina
    • Be sure to choose “RDP” protocol, enter IP and linux user name
    • play with the options to make sure you have the best possible experience with your network
  • RDP should work ok under mac but I didn’t test it (yet)
    • Install from the mac app store
    • start it and enter IP and linux user name
    • Works ok but for non qwerty keyboard that are not correctly recognized

With a ubuntu client this is the best experience I had (careful though, if the user is already connected graphically, some softwares may not like to be relaunched, firefox typically doesn’t like it).

Just launch graphic application through ssh (slow)

If nothing else is possible, you can always to simple X11 forwarding under ssh, but it’s slow.

Specific linux client

None.

Specific mac client

You need to first install XQuartz
Then open XQuartz.app, and in the terminal follow intructions for all clients.

Specific windows client

Install putty, and enable X11 Forwarding

All clients

In the terminal:
ssh -X myserver
Then you can test xdisplay with
xclock
You can even launch a file explorer:
nautilus
It’s real slow for the set up but then file exploration is ok.
This solution still is really slow (try for example plotting complex graphics in R…

Are we more bacteria than human ?

Didn’t you have this discussion with your scientific minded friends: so many bacteria in your intestine, on your skin etc. that actually you may be more bacteria than human? I sure had this discussion with two Ivy League university professors who were 100% sure there was more bacteria than human DNA in the typical 70kg man.

So what are the orders of magnitude?

A recently published PNAS article sets the records straight:

  1. There are slightly (<3%) more bacteria than human cells in a human body
  2. Their total mass is 350 times less than that of human cells

That implies that total DNA content is about 1000 times less than total human DNA as the number of cells is about the same and the human genome at ~3 billion base pair is 1000 times the typical bacterial genome size.

Of course that’s without counting mitochondria which might be considered as endosymbiotic bacteria.

So sure, bacteria in a human body are important, but not completely overwhelming our “own” genetic information 🙂

tmap R package

R has been my environment of choice for plotting spatial data for some time now and this great piece of software got even better with the tmap package.

It easily allow to plot maps such as :

Screenshot from 2015-11-06 12:38:55

You plot using the function `qtm` and can easily customize the map by providing options to intuitively named subroutines such as tm_fill.

I specially love the different algorithms proposed to choose the classes for the legend, quantiles, k-means … You can simply plot the above with:


library("tmap")
data(World)
qtm(World,fill="pop_est_dens",fill.style="quantile",
fill.palette="Blues")

where fill simply is the name of the field in the data frame, fill.style is the algorithm used to make the classes of colors and fill.palette the name of the pallette that can be checked up using :

RColorBrewer::display.brewer.all()

Check up the help for tm_fill to understand the fill.xxx parameters!

Two thumbs up for tmap!!!

News coverage for the access to care in Philadelphia study

Wednesday, May 8th was the official release date for the report on access to primary care in Philadelphia.

We’ve got some nice coverage of our study by the LDI periodical of course but also by NewsWorks and Philly.com (Philadelphia Inquirer).

Cheers!

Quick and easy cartography with “My Maps”

For quick and easy cartography, “My maps” service from Google allows to make and publish online maps.

Adding features

A csv with coordinates can easily be uploaded. It also supports drawing of points, polygons and polylines on multiple layers.

Maps are easily modifiable using a smartphone: a must have for field cartography 🙂

Export

Note that the export format is kml/kmz. The kmz exported can be unzipped with any zipping utility returning a kml. The kml can be imported directly in R using readOGR in the the rgdal package. It can also be imported in QGIS and from there exported to many formats.

Delivery of the review report on Access to Care in Philadelphia

This significant expertise on the access to primary care in the Philadelphia, PA involved several of our key know-how:

  • Data Management with merging of practitioners and population information from over 10 data sources
  • Spatial analysis based on driving distances
  • Cartography with the constitution of interactive Google maps involving spatial statistics under the hood
  • Web development to interface the whole

It is reaching an end with the recent delivery of the review report.

Our next steps are to:

  1. Make available online the interactive map engine, without proprietary data 🙂
  2. Publish in medical journals the key findings of the study (yes, access to care has social determinants…)

We will keep you posted.

Cheers!