Citizen Science: Tracking Aliens with Python!
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Siniscalchi, Alessio
Alessio Siniscalchi - Citizen Science: Tracking Aliens with Python! The talk discusses the challenges of implementing a Citizen Science Paradigm in a Python-centric platform, and the solutions devised for the System for observation and monitoring of Marine Alien Species, currently used by the italian Institute for Environmental Protection and Research (ISPRA). "Alien" Species means species introduced into a natural environment where they are not normally found. Topics includes strategies for crowd-friendly forms, work-flow definition for collected data, choice of the best technologies for its components: app for android devices, web application for citizens and experts, webGIS for data browsing and web services for data exporting.
 Thank you. Welcome everybody to my talk. My talk is about the tracking alliance with pattern, citizen science application. Shortly I introduce myself and the company I work in. I'm Alessio Sinis Calchi. I'm an Italian engineer and I work in Rome and my company is Be Open Solutions. I'm from Rome, Italy. We use the mission and philosophy of our company is to use open source software as much as possible as for Italian companies or for large industries and international institutes. One of our main subjects is oriented to develop geographical data such as environmental data and image recognition and image plotting and so on. My contact information is displayed here and for you all at the end of my talk. My talk is about alliance. I don't know if you read the abstract of my talk. This is a little question for I think the big question, definitive question for we all is are we alone? Can we collect and enhance instruments to track aliens and non-flying objects and so on? Okay. No. Of course not. I'm joined with you and we are not talking about Martians. Of course we are talking about a system to register, to collect data about marine alien species, marine alien species that is to say a species invasive, non-autotonous. So of course we are not alone and stakeholders of this kind of application is not telescope operators or radiometers but is scientist, marine biologist and then of course citizens, divers, professional and non-professional fishermen. Okay. Now we speak about this application, the importance of to register, to collect data about alien that is to say non-indigenous species, marine species. Why? Because the presence of these invasive species is one of the major cases of the decrease in biodiversity. So not only the pollution of the sea we consider. I underline that we don't speak strictly about fish but only jellyfish, crustaceans and living sea plants and so on. You can see in this picture one fish with three eyes pictured near the coast of Springfield, USA. Okay. But how they travel? They travel in the ballast waters of commercial ships or the island. We have an intentional human introduction of this fish, an annotation for example from aquariums, also intentional introduction to balance the habitat of these species. Of course marine biologists do this introduction but they should be strongly monitored. Okay. When a marine species is interacted in a new habitat they begin to multiply their presence, increasing predation and competition. So consuming and co-systemal resources and so the deep change of the habitat change the species itself, the DNA we know. So we have, this is a very important question. So what this kind of problem deal with Python? Okay. This is some characteristic of this kind of problems are very typical. We consider in this case geographical data, geolocated data. Of course you know that scientists, the dream of each scientist and to have a wide, very wide area collected with collection of data in a homogeneous way. But of course it is not always possible. You know that resources are very scarce. Also scientists are few and their work is expensive. I don't know here but in Italy we have a few resources, a few refunds for researchers. So usually reports are very few. They are focused above all in the most populated areas on the most interesting ones from the point of view of the environmental habitat and biodiversity. And so this is in this picture we see a case of this shell. The signalation of this shell is around the Venice lagoon above all. So the reports are very few. And what the solution of this kind of problem is the application of the citizen science paradigm. What is the citizen science paradigm? Citizen science means public participation in scientific research. This is a Wikipedia definition. It is one century years old. So what it needs in my opinion, of course to be applicable, it needs the supervision of professional scientists. Why? Because we cannot consider the collected data from non-professional user citizens and so non-professional scientists as good. So we have a first phase to validate data collected. Then of course we have to do a survey over these collected data. And at the end of this survey we have the need of a person, a scientist that has the responsibility to publish the survey. So in words we need a workflow, the definition of a workflow. Of course non-professional users should be emotionally involved in the project. So we need to give them a feedback, some information that should be important to the public participation is that it should involve a public important issue. So also users should not be scared by long forms, long subscribing procedures, complicated work. So they should compile user friendly forms. We have to balance two needs. They need to have a lot of data, but poor information over each report with a lot of information on each report, but very few reports. And we prefer to have a lot of reports, but each report should have very, very few information. So we need to have homogeneous data in a wide area. Of course, citizen science paradigm nowadays is used because there is a big diffusion of media devices. Of course users should be equipped with tools for the report of the observations. So we can use this kind of paradigm and these are some examples of citizen science projects and some of success stories. And not only environmental projects, they involve, for example, this one from the National Geographic, they send you a little kit to get your DNA for tracking history of human migrations, for example. Okay, now I speak in general, now I'm going to speak the more specific case of my project, SMAA, System for Tracking Marine Alliances. The client, the client was ISPRA, ISPRA is the Italian Institute for Environmental Protection and Research. And this is the main infrastructure, system infrastructure. We see on the left the input data, input data is coming from anonymous user or authenticated user via a Facebook authentication. Facebook authentication API is defined in Facebook, it is not such a complicated work. Of course feedback can be applicable only for Facebook log users. And then this HTML5 forms to be visible in a media device with a web view, web view plan instance. We see that we have two plan instances. One plan instance is designed to be visualized by media devices. And the second one for desktop workplaces. So we see that these kind of projects have three databases. Note that I have marked two different colors, pink for developed software and light green for only configured software that is available. So what about database? Zodib is the hierarchical database, I don't want to speak about this. I designed a Postgres with Postgrease extensions to collect data and also a file system to collect the pictures of the species for a local database of marine species and for signalations of marine species. So I need to consider a project scalable because you can't predict in advance for citizen science application, you don't know in advance the amount of the participation of citizens. So with file system storing, you can add space, storing space, simply mounting new parts of the file system. Of course this project have open layers. Open layers used for users in the plan instances both. But one on the left is used to mark the position of the signalations and the second one on the right used to manage all the signalations by biomeric experts. Of course at the end we have on the right the interfaces to use such data for bi-external services. So we have an XML or CSV exporter and a geoserver instance to make data available with very famous protocols such as WFS. Okay, this is the simply crowd friendly form to make a signalation. You see the top on the left and the bottom on the right. You see that it's only one page, one blown page, one language, one layer on the map. It's very simple, should be very simple and with very few information. The picture and position are compulsory and so we have other data to report, this is the date of the observation depth and some additional notes. So there is a validation, a type of validation client side and after of course there is a validation of the expert server side of course. We see the workflow definition, this is an example of the work for the definition but it is very typical in this case studies. We have two kind of experts, expert level one, we call the level one that makes the validation and the creation of the survey and so the attribution of the right species to the signalations and expert level two that have the responsibility to publish the survey. Any way signalation reacted or published generates a feedback to the citizens so the citizen should be involved and should be considered. And so now I quickly show you some Python piece, three little Python pieces I used, note that I use Python non such in eccentric or strange way but as a general glue to make all tools working together. This one is a piece of code from the database model, I use SQL Alchemy declarative base so this is the class signalation, you know that this with one to one relationship with the survey, use list is forced. Then we know that latitude and longitude are two floats but position is a geometry so I use a geo Alchemy two and a simple function to make the translation of the position to be used with open layers. Another piece is the piece of code for the XML exporter, it uses chameleon and we have to translate a ABCD DNA template, this is a template used for exchange biological data so I think it's enough simple but I translate a page template file, I fill it with data. And third is a little bit interesting, there is a connection with worms, worms is the word register of marine species, the fact of standard for the taxonomy definition of marine species all over the world. We know that worms offers a service to query its database via SOAP protocol so I use SOAP pie to query this database. With this schema I reach the possibility to have the classification of each species automatically and so the biologist scientist should not insert and insert the rank, the philum, the genre of the species. And now Sma now is available at this link and it is not sponsored yet but should be published soon, I hope. And okay and this is all, thank you for listening. We have time for two questions, if anyone has a question please raise their hand and we'll get you the microphone. Hi, so why did you choose blown? To use blown. Yes, I choose blown because the final client, one of the reasons, the final client is already skillful with blown also the East Prane Institute has a blown site so we didn't have in this project an after deployment assistance. So this is one of the best solutions for the client. Of course also be open, the company working have a strong know how about this content management system so I choose that. Time for one more if anyone has one. Okay, thank you very much, Alessio. Thank you. We'll be back in five minutes with a talk on TDD.
 Thank you.  Welcome everybody to my talk.  My talk is about the tracking alliance with pattern, citizen science application.  Shortly I introduce myself and the company I work in.  I'm Alessio Sinis Calchi.  I'm an Italian engineer and I work in Rome and my company is Be Open Solutions.  I'm from Rome, Italy.  We use the mission and philosophy of our company is to use open source software as much as  possible as for Italian companies or for large industries and international institutes.  One of our main subjects is oriented to develop geographical data such as environmental data  and image recognition and image plotting and so on.  My contact information is displayed here and for you all at the end of my talk.  My talk is about alliance.  I don't know if you read the abstract of my talk.  This is a little question for I think the big question, definitive question for we all  is are we alone?  Can we collect and enhance instruments to track aliens and non-flying objects and so  on?  Okay.  No.  Of course not.  I'm joined with you and we are not talking about Martians.  Of course we are talking about a system to register, to collect data about marine alien  species, marine alien species that is to say a species invasive, non-autotonous.  So of course we are not alone and stakeholders of this kind of application is not telescope  operators or radiometers but is scientist, marine biologist and then of course citizens,  divers, professional and non-professional fishermen.  Okay.  Now we speak about this application, the importance of to register, to collect data about alien  that is to say non-indigenous species, marine species.  Why?  Because the presence of these invasive species is one of the major cases of the decrease  in biodiversity.  So not only the pollution of the sea we consider.  I underline that we don't speak strictly about fish but only jellyfish, crustaceans  and living sea plants and so on.  You can see in this picture one fish with three eyes pictured near the coast of Springfield,  USA.  Okay.  But how they travel?  They travel in the ballast waters of commercial ships or the island.  We have an intentional human introduction of this fish, an annotation for example from  aquariums, also intentional introduction to balance the habitat of these species.  Of course marine biologists do this introduction but they should be strongly monitored.  Okay.  When a marine species is interacted in a new habitat they begin to multiply their presence,  increasing predation and competition.  So consuming and co-systemal resources and so the deep change of the habitat change the  species itself, the DNA we know.  So we have, this is a very important question.  So what this kind of problem deal with Python?  Okay.  This is some characteristic of this kind of problems are very typical.  We consider in this case geographical data, geolocated data.  Of course you know that scientists, the dream of each scientist and to have a wide, very  wide area collected with collection of data in a homogeneous way.  But of course it is not always possible.  You know that resources are very scarce.  Also scientists are few and their work is expensive.  I don't know here but in Italy we have a few resources, a few refunds for researchers.  So usually reports are very few.  They are focused above all in the most populated areas on the most interesting ones from the  point of view of the environmental habitat and biodiversity.  And so this is in this picture we see a case of this shell.  The signalation of this shell is around the Venice lagoon above all.  So the reports are very few.  And what the solution of this kind of problem is the application of the citizen science  paradigm.  What is the citizen science paradigm?  Citizen science means public participation in scientific research.  This is a Wikipedia definition.  It is one century years old.  So what it needs in my opinion, of course to be applicable, it needs the supervision  of professional scientists.  Why?  Because we cannot consider the collected data from non-professional user citizens and so  non-professional scientists as good.  So we have a first phase to validate data collected.  Then of course we have to do a survey over these collected data.  And at the end of this survey we have the need of a person, a scientist that has the  responsibility to publish the survey.  So in words we need a workflow, the definition of a workflow.  Of course non-professional users should be emotionally involved in the project.  So we need to give them a feedback, some information that should be important to the public participation  is that it should involve a public important issue.  So also users should not be scared by long forms, long subscribing procedures, complicated  work.  So they should compile user friendly forms.  We have to balance two needs.  They need to have a lot of data, but poor information over each report with a lot of information  on each report, but very few reports.  And we prefer to have a lot of reports, but each report should have very, very few information.  So we need to have homogeneous data in a wide area.  Of course, citizen science paradigm nowadays is used because there is a big diffusion of  media devices.  Of course users should be equipped with tools for the report of the observations.  So we can use this kind of paradigm and these are some examples of citizen science projects  and some of success stories.  And not only environmental projects, they involve, for example, this one from the National  Geographic, they send you a little kit to get your DNA for tracking history of human  migrations, for example.  Okay, now I speak in general, now I'm going to speak the more specific case of my project,  SMAA, System for Tracking Marine Alliances.  The client, the client was ISPRA, ISPRA is the Italian Institute for Environmental Protection  and Research.  And this is the main infrastructure, system infrastructure.  We see on the left the input data, input data is coming from anonymous user or authenticated  user via a Facebook authentication.  Facebook authentication API is defined in Facebook, it is not such a complicated work.  Of course feedback can be applicable only for Facebook log users.  And then this HTML5 forms to be visible in a media device with a web view, web view  plan instance.  We see that we have two plan instances.  One plan instance is designed to be visualized by media devices.  And the second one for desktop workplaces.  So we see that these kind of projects have three databases.  Note that I have marked two different colors, pink for developed software and light green  for only configured software that is available.  So what about database?  Zodib is the hierarchical database, I don't want to speak about this.  I designed a Postgres with Postgrease extensions to collect data and also a file system to  collect the pictures of the species for a local database of marine species and for  signalations of marine species.  So I need to consider a project scalable because you can't predict in advance for citizen science  application, you don't know in advance the amount of the participation of citizens.  So with file system storing, you can add space, storing space, simply mounting new parts  of the file system.  Of course this project have open layers.  Open layers used for users in the plan instances both.  But one on the left is used to mark the position of the signalations and the second one on  the right used to manage all the signalations by biomeric experts.  Of course at the end we have on the right the interfaces to use such data for bi-external  services.  So we have an XML or CSV exporter and a geoserver instance to make data available with very famous  protocols such as WFS.  Okay, this is the simply crowd friendly form to make a signalation.  You see the top on the left and the bottom on the right.  You see that it's only one page, one blown page, one language, one layer on the map.  It's very simple, should be very simple and with very few information.  The picture and position are compulsory and so we have other data to report, this is the  date of the observation depth and some additional notes.  So there is a validation, a type of validation client side and after of course there is a  validation of the expert server side of course.  We see the workflow definition, this is an example of the work for the definition but  it is very typical in this case studies.  We have two kind of experts, expert level one, we call the level one that makes the  validation and the creation of the survey and so the attribution of the right species  to the signalations and expert level two that have the responsibility to publish the survey.  Any way signalation reacted or published generates a feedback to the citizens so the citizen  should be involved and should be considered.  And so now I quickly show you some Python piece, three little Python pieces I used, note that  I use Python non such in eccentric or strange way but as a general glue to make all tools  working together.  This one is a piece of code from the database model, I use SQL Alchemy declarative base  so this is the class signalation, you know that this with one to one relationship with  the survey, use list is forced.  Then we know that latitude and longitude are two floats but position is a geometry so I  use a geo Alchemy two and a simple function to make the translation of the position to  be used with open layers.  Another piece is the piece of code for the XML exporter, it uses chameleon and we have  to translate a ABCD DNA template, this is a template used for exchange biological data  so I think it's enough simple but I translate a page template file, I fill it with data.  And third is a little bit interesting, there is a connection with worms, worms is the word  register of marine species, the fact of standard for the taxonomy definition of marine species  all over the world.  We know that worms offers a service to query its database via SOAP protocol so I use SOAP  pie to query this database.  With this schema I reach the possibility to have the classification of each species automatically  and so the biologist scientist should not insert and insert the rank, the philum, the  genre of the species.  And now Sma now is available at this link and it is not sponsored yet but should be  published soon, I hope.  And okay and this is all, thank you for listening.  We have time for two questions, if anyone has a question please raise their hand and  we'll get you the microphone.  Hi, so why did you choose blown?  To use blown.  Yes, I choose blown because the final client, one of the reasons, the final client is already  skillful with blown also the East Prane Institute has a blown site so we didn't have in this  project an after deployment assistance.  So this is one of the best solutions for the client.  Of course also be open, the company working have a strong know how about this content  management system so I choose that.  Time for one more if anyone has one.  Okay, thank you very much, Alessio.  Thank you.  We'll be back in five minutes with a talk on TDD.
Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__0_131.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__132_215.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__216_275.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__276_2099.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__2100_4343.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__4344_7871.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__7872_10691.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__10692_17459.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__17460_17951.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__17952_25607.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__25608_26291.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__26292_27035.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__27036_28775.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__28776_30647.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__30648_31583.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__31584_33551.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__33552_34103.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__34104_34883.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__34884_35063.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__35064_35111.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__35112_35315.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__35316_35471.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__35472_35843.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__35844_35903.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__35904_36083.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__36084_36131.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__36132_36323.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__36324_36587.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__36588_37067.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__37068_37115.png Alessio_Siniscalchi_-_Citizen_Science__Tracking_Aliens_with_Python__37116_37317.png