Skip to content

GSoC 2023 Implement SensorThings API standard in istSOS Saail Narvekar

SaailN edited this page Aug 24, 2023 · 7 revisions

Weekly Reports

Proposal

Contact Detail:

Project: istSOS

Mentors: Massimiliano Cannata and Daniele Strigaro

istSOS is an open source Sensor Observation Service(SOS) Data Management System. It is an OGC SOS server implementation. istSOS allows for managing and dispatching observations from monitoring sensors according to the Sensor Observation Service standard. The project provides a Graphical User Interface that allows for easing the daily operations and a RESTFull Web API for automatizing administration procedures. istSOS is entirely written in Python and is based on reliable open-source software like PostgreSQL/PostGIS and Apache/mod-wsgi.

Title:

Support basic Sensor Things Api (STA) in istSOS.

Description:

The goal of my project is to add the OGC standard of Sensor Things API(STA) to istSOS project. The OGC SensorThings API provides an open, geospatial-enabled and unified way to interconnect the Internet of Things (IoT) devices, data, and applications over the Web.

The project aims to extend interoperability and implement some of the basic APIs from STA that could be adopted in a new revised version of istSOS.

At a high level, the OGC SensorThings API provides two main functionalities and each function is handled by a part. The two parts are the Sensing part and the Tasking part. The Sensing part provides a standard way to manage and retrieve observations and metadata from heterogeneous IoT sensor systems. The Tasking part is to give commands to sensors and actuators.

Sensing entities of STA are:

Tasking entity of STA:

Project Backlog:

istSOS STA project backlog

Idea:

OGC SensorThings APIs need to be explored. FastAPI can be used for the request and response of the istSOS STA services. As PostgreSQL is used as the primary data store or data warehouse in istSOS project, data can be managed using postGIS which is a spatial database extender for PostgreSQL object-relational database.

PostgREST is a standalone web server that could be used to turn the PostgreSQL database of STA data directly into a RESTful API.

Steps:

  1. Refining backlog with planning, review and working with other team members in an agile approach

  2. Assignment of different tasks sprint by sprint.

  3. Implementing all basic STA requests for sensing and tasking considering the OGC standards.

  4. Setting up architecture based using fastAPI web framework and PostgreSQL database.

  5. Integrating the tested STA service on istSOS project.

Timeline:

Time Period Task
May 4, 2023 Student Projects Announced
May 4, 2023 - May 28, 2023 Community BondingUnderstanding and Implementing the STA APIs considering requirements like responses and debugging errors.Refining backlog with planning, review and working with other team members in an agile approach.Getting familiar with the source code and the material given by mentors.Setting up my repository, and familiarizing myself with version control systems.Discussion about the proposed idea and some future aspects.Setting up my wiki page, where I will describe my project and keep track of my weekly progress.
May 29, 2023 - July 9, 2023 Coding Period 1Working more on STA APIs and Identify the extra metadata.. ( May 29 - June 5 ) Start implementing APIs using FastAPI python web framework. ( June 6 - June 13 ) Data management using Postgres and postgREST. ( June 14 - June 24 ) Combining FastAPI and postgres database( June 25 - July 2 ) Debugging and Discussion period over the issue.( July 2 - July 9 )
July 10, 2023 - July 14, 2023 Mid-term Evaluations
July 14, 2023 - August 21, 2023 Coding Period 2Implementing and testing all the STA requests. ( July 14 - July 21 ) Integrating the STA service on istSOS project( July 22 - August 12 ) Debugging and discussion period over the issues.( August 13 - August 21 )
August 21 - August 28, 2023 Final Code Submission
August 28 - September 4, 2023 Mentors Submit Final Evaluations

Studies :

What are your school and degree?

I am a second-year postgraduate student at the Indian Institute of Technology Bombay(IITB). My master's is focused on Geo-informatics and Natural Resources ( Batch 2021 - 2024 ).

Would your application contribute to your ongoing studies/degree? If so, how?

My coursework and research are mostly focused on GIS and remote sensing. Also, I am looking forward to taking this as a career also in the future so it’s going to contribute a lot to me.

Programming and GIS:

  1. Programming Experience:

Programming Languages: Python, C

Software/ IDE: Linux, QGIS, SNAP, Vim, Sublime, Git, PostgreSQL

Libraries/Frameworks: Tesorflow, Keras, Pytorch, GDAL

  1. GIS experience as a user:

I have worked on a few remote sensing and GIS software in my coursework. I have also done a few interesting projects using open-source GIS software.

I worked on a few interesting project ideas:

1. UAV-BASED GEOSPATIAL APPLICATION USING A 3D ROBOTICS SIMULATOR

(Web GIS-based project for finding real-time change detection and geo-location on an open street map. Postgis was used for the database. GDAL library was used for georeferencing images captured by a simulated drone in a Gazebo robotics simulator.)

2. GIS-based site selection for the solar panels.

(Various layers were used for the analysis in QGIS software and then exported to the Qfield app) I hope this opportunity will give me a great experience as a user and also as a developer for GIS.

GSoC participation:

Have you participated in GSoC before?

No. This is my first Google Summer of Code participation and I feel enthusiastic about it.

Have you submitted/will you submit another proposal for this year's GSoC to a different org? Which one?

No, I haven't submitted another proposal for this year's GSoC to a different org.

# Weekly Reports

Proposal

Contact Detail:

Project: istSOS

Mentors: Massimiliano Cannata and Daniele Strigaro

istSOS is an open source Sensor Observation Service([SOS](https://www.ogc.org/standard/sos/)) Data Management System. It is an [OGC](https://www.ogc.org/) SOS server implementation. istSOS allows for managing and dispatching observations from monitoring sensors according to the Sensor Observation Service standard. The project provides a Graphical User Interface that allows for easing the daily operations and a RESTFull Web API for automatizing administration procedures. istSOS is entirely written in Python and is based on reliable open-source software like PostgreSQL/PostGIS and Apache/mod-wsgi.

Title:

Support basic Sensor Things Api (STA) in istSOS.

Description:

The goal of my project is to add the OGC standard of Sensor Things API(STA) to istSOS project. The OGC SensorThings API provides an open, geospatial-enabled and unified way to interconnect the Internet of Things (IoT) devices, data, and applications over the Web.

The project aims to extend interoperability and implement some of the basic APIs from STA that could be adopted in a new revised version of istSOS.

At a high level, the OGC SensorThings API provides two main functionalities and each function is handled by a part. The two parts are the Sensing part and the Tasking part. The Sensing part provides a standard way to manage and retrieve observations and metadata from heterogeneous IoT sensor systems. The Tasking part is to give commands to sensors and actuators.

Sensing entities of STA are:

Tasking entity of STA:

Project Backlog:

[istSOS STA project backlog](https://docs.google.com/spreadsheets/d/1ajI9hiFU7SlQjfPGYJLUDuoqy3NOf1vxCe_KfLsB9nQ/edit#gid=0)

Idea:

OGC SensorThings APIs need to be explored. FastAPI can be used for the request and response of the istSOS STA services. As PostgreSQL is used as the primary data store or data warehouse in istSOS project, data can be managed using postGIS which is a spatial database extender for PostgreSQL object-relational database.

PostgREST is a standalone web server that could be used to turn the PostgreSQL database of STA data directly into a RESTful API.

Steps:

  1. Refining backlog with planning, review and working with other team members in an agile approach
  2. Assignment of different tasks sprint by sprint.
  3. Implementing all basic STA requests for sensing and tasking considering the OGC standards.
  4. Setting up architecture based using fastAPI web framework and PostgreSQL database.
  5. Integrating the tested STA service on istSOS project.

Timeline:

Time Period Task
May 4, 2023 Student Projects Announced
May 4, 2023 - May 28, 2023 Community BondingUnderstanding and Implementing the STA APIs considering requirements like responses and debugging errors.Refining backlog with planning, review and working with other team members in an agile approach.Getting familiar with the source code and the material given by mentors.Setting up my repository, and familiarizing myself with version control systems.Discussion about the proposed idea and some future aspects.Setting up my wiki page, where I will describe my project and keep track of my weekly progress.
May 29, 2023 - July 9, 2023 Coding Period 1Working more on STA APIs and Identify the extra metadata.. ( May 29 - June 5 ) Start implementing APIs using FastAPI python web framework. ( June 6 - June 13 ) Data management using Postgres and postgREST. ( June 14 - June 24 ) Combining FastAPI and postgres database**( June 25 - July 2 )** Debugging and Discussion period over the issue.( July 2 - July 9 )
July 10, 2023 - July 14, 2023 Mid-term Evaluations
July 14, 2023 - August 21, 2023 Coding Period 2Implementing and testing all the STA requests. ( July 14 - July 21 ) Integrating the STA service on istSOS project**( July 22 - August 12 )** Debugging and discussion period over the issues.( August 13 - August 21 )
August 21 - August 28, 2023 Final Code Submission
August 28 - September 4, 2023 Mentors Submit Final Evaluations

Studies :

What are your school and degree?

I am a second-year postgraduate student at the Indian Institute of Technology Bombay(IITB). My master's is focused on Geo-informatics and Natural Resources ( Batch 2021 - 2024 ).

Would your application contribute to your ongoing studies/degree? If so, how?

My coursework and research are mostly focused on GIS and remote sensing. Also, I am looking forward to taking this as a career also in the future so it’s going to contribute a lot to me.

Programming and GIS:

  1. Programming Experience:

Programming Languages: Python, C

Software/ IDE: Linux, QGIS, SNAP, Vim, Sublime, Git, PostgreSQL

Libraries/Frameworks: Tesorflow, Keras, Pytorch, GDAL

  1. GIS experience as a user:

I have worked on a few remote sensing and GIS software in my coursework. I have also done a few interesting projects using open-source GIS software.

I worked on a few interesting project ideas:

1.[ UAV-BASED GEOSPATIAL APPLICATION USING A 3D ROBOTICS SIMULATOR](https://drive.google.com/file/d/1k_F4kVsOZ0bPu_cJPuSBfCFeDOv3GEwj/view?usp=share_link)

(Web GIS-based project for finding real-time change detection and geo-location on an open street map. Postgis was used for the database. GDAL library was used for georeferencing images captured by a simulated drone in a Gazebo robotics simulator.)

2.[ GIS-based site selection for the solar panels.](https://docs.google.com/presentation/d/1Ent2tjEBx2z0pQXbEMyuSlwBrK1uMY7t/edit?usp=sharing&ouid=104062167263403728732&rtpof=true&sd=true)

(Various layers were used for the analysis in QGIS software and then exported to the Qfield app) I hope this opportunity will give me a great experience as a user and also as a developer for GIS.

GSoC participation:

Have you participated in GSoC before?

No. This is my first Google Summer of Code participation and I feel enthusiastic about it.

Have you submitted/will you submit another proposal for this year's GSoC to a different org? Which one?

No, I haven't submitted another proposal for this year's GSoC to a different org.

Clone this wiki locally