GSoC 18: istSOS-Support of Unit Of Measure conversion in istSOS3

From OSGeo
Revision as of 09:53, 10 June 2018 by Rahulworld (Talk | contribs) (Updated)

Jump to: navigation, search
This is where I'll be posting information about istSOS-Support of Unit Of Measure conversion in istSOS3 GSoC 2018 project to the OSGeo community.

Introduction

The aim of my project primarily is to add conversion of the unit of measure in istSOS3. The user can convert unit in another specified unit. For Unit of measure conversion in istSOS3 we will add pint libraries which has a powerful feature of unit conversion along with many specified functions like pressure, temperature, height, velocity, distance, humidity and rain unit conversion function instantly.

Idea

istSOS has gone through a lot of improvements since 2009. This has somehow affected the simplified interaction with measurements and SOS service settings.

Project

Title: istSOS-Support of Unit Of Measure conversion in istSOS3.

Student: Rahul Chauhan

Mentors: Massimiliano Cannata, Milan Antonovic.

Details

The development process can be monitored at the following links:

Implementation details

PINT

Pint is a Python package to define, operate and manipulate physical quantities: the product of a numerical value and a unit of measurement. It allows arithmetic operations between them and conversions from and to different units. It runs in Python 2.7 and 3.3+ with no other dependency. It supports a lot of numpy mathematical operations without monkey patching or wrapping numpy.

PostgreSQL-unit

postgresql-unit implements a PostgreSQL datatype for SI units, plus byte. The eight base units can be combined to arbitrarily complex derived units using operators defined in the PostgreSQL type system. SI and IEC binary prefixes are used for input and output, and quantities can be converted to arbitrary scale. Unit and prefix definitions are retrieved from database tables, and new definitions can be added at run time. The extension comes with over 2500 units and over 100 prefixes found in the definitions.units file in GNU Units 2.16.

Schedule

Dates Task
Week 1 (May, 14 - May, 20) PostgreSQL-unit testing on the system.
Week 2 (May, 21 - May, 27) unit conversion using the PostgreSQL query in istSOS3.
Week 3 (May, 28 - June, 3) Comparing PostgreSQL-unit and Pint.
Week 4 (June, 4 - June, 10) PostgreSQL-unit test in istSOS3.
Week 5 (June, 11 - June, 15) Phase 1 Evaluation Testing and Debugging PostgreSQL-unit in istSOS3.
Week 6 (June, 16 - June, 24) Pint testing on my System.
Week 7 (June, 25 - July, 1) Pint Testing in istSOS3.
Week 8 (July, 2 - July, 8) Implement Pint in istSOS3.
Week 9 (July, 9 - July, 13) Phase 2 Evaluation Testing and Debugging Pint in istSOS3.
Week 10 (July, 14 - July, 22) Comparing Pint and PostgreSQL-unit lib. for unit conversion.
Week 11 (July, 23 - July, 29) Testing, Debugging, Cleaning and Optimizing the codes.
Week 12 (July, 30 - August, 5) Take a week to scrub code, write a few test cases and test them, improve the current documentation.
Week 13 (August, 6 - August, 14) Final evaluation Buffer period. ( Final Week. Prepare documentation for final submission.).

Reports

Community Bonding Period

What did you get done?

  • I have installed istsos3 and postgresql-unit on my system and testing.
  • Understand Architecture of istsos3.
  • Functionality of PostgreSQL and Pint libraries.

What do you plan on doing next week?

  • I will implement postgresql-unit extension.

Are you blocked on anything?

  • Currently, everything is going according to plan.

May 14 - May 20 (Week 1)

What did I complete this week?

  • Tested Postgresql-unit extension on PostgreSQL database.
  • Tested Pint on the database.

What am I going to achieve for next week?

  • Implementing of postgresql-unit as plugin istsos3.

Is there any blocking issue?

  • Currently, everything is going according to plan.

May 21 - May 27 (Week 2)

What did I complete this week?

  • Implemented python script for unit conversion.
  • unit conversion using the postgresql-unit query.

What am I going to achieve for next week?

  • Implementing of postgresql-unit as plugin istsos3.

Is there any blocking issue?

  • Currently, everything is going according to plan.

May 28 - June 3 (Week 3)

What did I complete this week?

  • Implemented python script for unit conversion using all common units.

What am I going to achieve for next week?

  • Testing python script for unit conversion in istsos3.
  • Implementing of postgresql-unit as plugin istsos3.

Is there any blocking issue?

  • Currently, everything is going according to plan.

June 4 - June 10 (Week 4)

What did I complete this week?

  • Implemented unit conversion(PostgreSQL-unit) using post method in istsos3.

What am I going to achieve for next week?

  • Implementing post request(unit-conversion) for observation in istsos3.

Is there any blocking issue?

  • Currently, everything is going according to plan.


Student's Biography

My name is Rahul Chauhan. I am final year Computer Science & Engineering student at National Institute of Technology, Srinagar, India. Some more information about me can be obtained by following the link: http://rahulchauhan.net