Uploaded image for project: 'Spatial Information Systems'
  1. Spatial Information Systems
  2. SIS-307

GSoC: Create the foundation of a module for remote sensing data

    Details

    • Type: New Feature
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Storage
    • Labels:

      Description

      This is a proposal for a Google Summer of Code (GSoC) project. The Apache SIS library needs a module for efficient handling of large n-dimensional remote sensing data. The module shall:

      • Provide a common approach to the reading and writing of grid coverages applicable to simple imagery as to multi-dimensional data structures.
      • Allow operations that preserve the scientific meaning of data (e.g. distinguish between measurements and missing values, why the value is missing, estimation of accuracy).
      • Be compliant with international standards, in particular (but not only) Schema for coverage geometry and functions (ISO 19123) and Web Coverage Services (WCS). The module should provide extensions to those standards only for aspects that are not covered by an existing standard.

      This module will be a redesign of coverage module that existed in previous projects. In particular, the coverage module of the Geotk project will be used as a starting point. However an important focus of this project is to fix known limitations of previous projects, for example:

      • Too strong reliance on javax.imageio API, which was designed for two-dimensional images. That API is difficult to generalize to three- or four-dimensional data accesses.
      • Too strong reliance on javax.imageio.metadata API, which is basically a XML document. Ordinary Java objects are more convenient to use and the ISO 19115 international standard can be a good model for those objects.
      • Too strong restriction on the grid geometry (in previous projects, the conversion from pixel coordinates to "real world" coordinates is restricted to an affine transform).
      • Only quadrilateral grid coverages were supported.

      The development language is Java. Operating system can be Linux, Windows or MacOS. The build tool is Maven. If a web application is created (see next section), the container would be Tomcat.

      Proof of concept

      In order to ensure that the module is on the right track, a small application (either a desktop application for browsing images or a simple web application conforms to the WCS standard) will be created. This simple application will be created in collaboration with volunteers of space agency in Vietnam, Vietnam National Satellite Center (VNSC), for managing its geospatial database. The application should be able to:

      • Read at least two image formats of that space agency (the API shall allow addition of more formats in the future).
      • Allow diffusion of those data in time range, sub-area, sub-sampling and layers selected by the user.
      • Allow searches in some metadata fields (to be selected according the needs of the space agency).

      Non-goals

      This GSoC project is not expected to create a fully functional coverage module in 3 months. Performance is not a concern for this initial stage (in particular, building index or storing information in a database is out of scope), except that the application shall not load all data in memory: the application should prove that it can work with only a small fraction of the data in memory and load the remaining parts when needed. For the prototype application, those data will be read from a specified directory (a more advanced application could a database or cloud).

        Activity

        Hide
        sandaru.ny Sandaruwan Nanayakkara added a comment -

        Hey Martin,
        I'm Sandaruwan Nanayakkara and I'm an undegraduate from Faculty of Engineering, University of Peradeniya Sri Lanka.
        I would like to start work on this feature for GSoC as it seems really interesting.
        I already went through your feature details and contributor page to get some idea. If you can give me some more guidelines it would be really helpful. Specially on data spread that we can use form VNSC.

        Regards,
        Sandaruwan

        Show
        sandaru.ny Sandaruwan Nanayakkara added a comment - Hey Martin, I'm Sandaruwan Nanayakkara and I'm an undegraduate from Faculty of Engineering, University of Peradeniya Sri Lanka. I would like to start work on this feature for GSoC as it seems really interesting. I already went through your feature details and contributor page to get some idea. If you can give me some more guidelines it would be really helpful. Specially on data spread that we can use form VNSC. Regards, Sandaruwan
        Hide
        hao nguyen Nguyen Thi Phuong Hao added a comment -

        Hello Martin,
        I'm Nguyen Thi Phuong Hao, I'm a third year student majoring in Information Systems Design and Administration (INP-G), School of International Education, Hanoi University of Science and Technology, Viet Nam.
        I'am interested in this project .
        Could you tell me how I could take part in this project?
        Thank you!
        Hao.

        Show
        hao nguyen Nguyen Thi Phuong Hao added a comment - Hello Martin, I'm Nguyen Thi Phuong Hao, I'm a third year student majoring in Information Systems Design and Administration (INP-G), School of International Education, Hanoi University of Science and Technology, Viet Nam. I'am interested in this project . Could you tell me how I could take part in this project? Thank you! Hao.
        Hide
        desruisseaux Martin Desruisseaux added a comment -

        Hello Sandaruwan and Nguyen

        Thanks for your interest. In my understanding, students can submit their proposal to Google between March 14th and 25th. You are of course welcome to copy as much of this proposal as you wish, but are also free to modify it according what you would like to do during the 3 months project duration. In the next few weeks before March 25th, we can discuss on this page in order to help any student interested in this idea to prepare their proposal.

        In your proposal, you may decide first if you want to distribute images through a desktop application or a web service. If you choose web service, I would suggest to read the following documents on http://www.opengeospatial.org/standards/wms:

        • OpenGIS Web Map Service (WMS) Implementation Specification
        • Web Map Services - Application Profile for EO Products (0.3.3)

        It would also be useful to get a feeling (not necessarily a deep understanding at this stage) of the above documents from http://www.opengeospatial.org/standards/wcs:

        • OGC® WCS 2.0 Interface Standard - Core, version 2.0.1
        • OGC® WCS Interface Standard - Range Subsetting Extension, version 1.0.0
        • OGC® WCS Interface Standard - Scaling Extension, version 1.0.0

        If you choose to do a desktop application, there is no international standard for that but I would suggest to take inspiration from the above documents. The plan is of course not to implement fully the above specifications this summer - just to start the work with a proof of concept working on VNSC data. We hope that this work will add to Apache SIS the improvements that the student needs for doing this application. The Java code can take inspiration from the Java interfaces here:

        Again do not be scared by the complexity of above interfaces. The intend is not to implement all of them, only to start the work with the minimal amount of things needed for achieving your goal.

        I do not yet have the details about the VNSC data. We will try to have some sample before the project starts. However the important thing to keep in mind is that those data are not necessarily images with Red-Green-Blue bands. Instead of Red-Green-Blue colors, it may be infrared, or micro-wave, etc.

        So in summary, I suggest to get familiarized with the conceptual model in the above-cited WMS specification. Then you can write a proposal by copying as much text from this page as you want and modify or complete it according your goals. We can review proposals and make suggestions for those who wish. After March 25th, there will be a selection process at Google for submitted projects.

        Show
        desruisseaux Martin Desruisseaux added a comment - Hello Sandaruwan and Nguyen Thanks for your interest. In my understanding, students can submit their proposal to Google between March 14th and 25th. You are of course welcome to copy as much of this proposal as you wish, but are also free to modify it according what you would like to do during the 3 months project duration. In the next few weeks before March 25th, we can discuss on this page in order to help any student interested in this idea to prepare their proposal. In your proposal, you may decide first if you want to distribute images through a desktop application or a web service. If you choose web service, I would suggest to read the following documents on http://www.opengeospatial.org/standards/wms: OpenGIS Web Map Service (WMS) Implementation Specification Web Map Services - Application Profile for EO Products (0.3.3) It would also be useful to get a feeling (not necessarily a deep understanding at this stage) of the above documents from http://www.opengeospatial.org/standards/wcs: OGC® WCS 2.0 Interface Standard - Core, version 2.0.1 OGC® WCS Interface Standard - Range Subsetting Extension, version 1.0.0 OGC® WCS Interface Standard - Scaling Extension, version 1.0.0 If you choose to do a desktop application, there is no international standard for that but I would suggest to take inspiration from the above documents. The plan is of course not to implement fully the above specifications this summer - just to start the work with a proof of concept working on VNSC data. We hope that this work will add to Apache SIS the improvements that the student needs for doing this application. The Java code can take inspiration from the Java interfaces here: http://www.geoapi.org/snapshot/pending/org/opengis/coverage/package-summary.html (in particular the Coverage interface). Again do not be scared by the complexity of above interfaces. The intend is not to implement all of them, only to start the work with the minimal amount of things needed for achieving your goal. I do not yet have the details about the VNSC data. We will try to have some sample before the project starts. However the important thing to keep in mind is that those data are not necessarily images with Red-Green-Blue bands. Instead of Red-Green-Blue colors, it may be infrared, or micro-wave, etc. So in summary, I suggest to get familiarized with the conceptual model in the above-cited WMS specification. Then you can write a proposal by copying as much text from this page as you want and modify or complete it according your goals. We can review proposals and make suggestions for those who wish. After March 25th, there will be a selection process at Google for submitted projects.
        Hide
        Vu Minh Chinh Chinh Vu Minh added a comment -

        Hello Martin,
        I'm Vu Minh Chinh, I'm a third year students and I'm now studying in University of Engineering and Technology- HaNoi National Univesity. I'm also interested in your prọject,
        When students submit their proposal to GSOC. Could you tell me what they have to do?
        Best Regards,
        Chinh.

        Show
        Vu Minh Chinh Chinh Vu Minh added a comment - Hello Martin, I'm Vu Minh Chinh, I'm a third year students and I'm now studying in University of Engineering and Technology- HaNoi National Univesity. I'm also interested in your prọject, When students submit their proposal to GSOC. Could you tell me what they have to do? Best Regards, Chinh.
        Hide
        desruisseaux Martin Desruisseaux added a comment -

        Hello Chinh and all

        Students can submit their proposal between March 14th and 25th. The proposal can contains the following sections (this is just a suggested template, feel free to add and remove sections as appropriate).

        1. About me: What relevant experience have you got, including university, work and hobby activities?
        2. Background: What exists already? (possible answer: metadata like who produced the images and which geographic area is covered, but not the pixel values) What is the identified need? (possible answer: read the pixel values as scientific data - not just colors - and allow distribution of those data on internet).
        3. Brief list of things you will do / create, in some rough chronological order.
        4. Show which bits are essential, and which are optional. Highlight what is new, what are modifications, and how your work fits into the existing architecture (possible answer: become familiar with WMS specification (important). Create a GridCoverage class (essential). Support subsampling (optional)).
        5. Results for the Apache community: Benefit of your work to users and developers. What will be the legacy of your work after you finish?
        6. Deliverables: Including milestones, components, documentation, tests.
        7. Scheduling: Not too detailed, but some milestones and checkpoints. Rough estimates per work item (weeks/days). Remember to leave time for slack and bugfixing.
        8. Other commitments: Exams, part time work, holidays, lectures.
        9. Community engagement: How you plan to use Apache SIS project mailing lists, wikis, issue trackers, test systems.

        If you wish, it is possible to use the SIS wiki pages for writing your proposal: https://cwiki.apache.org/confluence/display/SIS/SIS+Wiki . It is okay too if you prefer to not use the wiki and write the proposal on your side - at your choice. If you would like to use the wiki, please let me know: I will create a page for GSoC projects.

        Show
        desruisseaux Martin Desruisseaux added a comment - Hello Chinh and all Students can submit their proposal between March 14th and 25th. The proposal can contains the following sections (this is just a suggested template, feel free to add and remove sections as appropriate). About me: What relevant experience have you got, including university, work and hobby activities? Background: What exists already? (possible answer: metadata like who produced the images and which geographic area is covered, but not the pixel values) What is the identified need? (possible answer: read the pixel values as scientific data - not just colors - and allow distribution of those data on internet) . Brief list of things you will do / create , in some rough chronological order. Show which bits are essential, and which are optional. Highlight what is new, what are modifications, and how your work fits into the existing architecture (possible answer: become familiar with WMS specification (important). Create a GridCoverage class (essential). Support subsampling (optional)) . Results for the Apache community: Benefit of your work to users and developers. What will be the legacy of your work after you finish? Deliverables: Including milestones, components, documentation, tests. Scheduling: Not too detailed, but some milestones and checkpoints. Rough estimates per work item (weeks/days). Remember to leave time for slack and bugfixing. Other commitments: Exams, part time work, holidays, lectures. Community engagement: How you plan to use Apache SIS project mailing lists, wikis, issue trackers, test systems. If you wish, it is possible to use the SIS wiki pages for writing your proposal: https://cwiki.apache.org/confluence/display/SIS/SIS+Wiki . It is okay too if you prefer to not use the wiki and write the proposal on your side - at your choice. If you would like to use the wiki, please let me know: I will create a page for GSoC projects.
        Hide
        joseph9 ndangoh joseph suh added a comment - - edited

        Hi Martin,
        I am Ndangoh Joseph. S, currently a third year computer software engineering student in university of Buea Cameroon. I am interested in working with apache in gsoc 2016, by contributing to this project "Create the foundation of a module for remote sensing data " , which i found interesting.

        I have good programming skills in java, java spring framework, javascript, and c, which i feel are relevant to this project. Also i have worked with two emerging startups and currently i am working at skylabase(http://www.skylabase.com) as a software developer.

        I have gone through the project idea and also have read the project proposal template. I found the links http://www.opengeospatial.org/standards/wms , http://www.opengeospatial.org/standards/wcs and http://www.geoapi.org/snapshot/pending/org/opengis/coverage/package-summary.html which you suggested above very useful.

        I will be waiting to hear from you while i continue to study and understand the project.

        Thanks,
        Ndangoh Joseph.

        Show
        joseph9 ndangoh joseph suh added a comment - - edited Hi Martin, I am Ndangoh Joseph. S, currently a third year computer software engineering student in university of Buea Cameroon. I am interested in working with apache in gsoc 2016, by contributing to this project "Create the foundation of a module for remote sensing data " , which i found interesting. I have good programming skills in java, java spring framework, javascript, and c, which i feel are relevant to this project. Also i have worked with two emerging startups and currently i am working at skylabase( http://www.skylabase.com ) as a software developer. I have gone through the project idea and also have read the project proposal template. I found the links http://www.opengeospatial.org/standards/wms , http://www.opengeospatial.org/standards/wcs and http://www.geoapi.org/snapshot/pending/org/opengis/coverage/package-summary.html which you suggested above very useful. I will be waiting to hear from you while i continue to study and understand the project. Thanks, Ndangoh Joseph.
        Hide
        desruisseaux Martin Desruisseaux added a comment -

        Hello Joseph, Chinh, Sandaruwan and Nguyen

        In my understanding, a next step would be to write a document describing the project that you would like to do. Some guidelines are available on the Apache web site (link in step 2 below). Some some possible steps would be:

        1. Create Google doc or a SIS wiki page (link given in above comment) or other support of your choice for your proposal. If you would like a page on the SIS wiki, please let me know and I will create it for you.
        2. Write the headers for the main sections using the template at http://community.apache.org/gsoc.html.
        3. Write the content in the parts that you know well.
        4. Write at least some elements in the more project-specific parts. Write the parts that you currently understand. To not be afraid if you do not understand all aspects yet - this is normal. You can copy and edit as many parts from this page as you wish.
        5. Let us know when you have a first draft. We may propose modifications, let you edit your document, possibly propose other modifications, etc. in cycles until we feel that the document is ready for submission on the Google web site.

        Would this approach be okay?

        Show
        desruisseaux Martin Desruisseaux added a comment - Hello Joseph, Chinh, Sandaruwan and Nguyen In my understanding, a next step would be to write a document describing the project that you would like to do. Some guidelines are available on the Apache web site (link in step 2 below). Some some possible steps would be: Create Google doc or a SIS wiki page (link given in above comment) or other support of your choice for your proposal. If you would like a page on the SIS wiki, please let me know and I will create it for you. Write the headers for the main sections using the template at http://community.apache.org/gsoc.html . Write the content in the parts that you know well. Write at least some elements in the more project-specific parts. Write the parts that you currently understand. To not be afraid if you do not understand all aspects yet - this is normal. You can copy and edit as many parts from this page as you wish. Let us know when you have a first draft. We may propose modifications, let you edit your document, possibly propose other modifications, etc. in cycles until we feel that the document is ready for submission on the Google web site. Would this approach be okay?
        Hide
        joseph9 ndangoh joseph suh added a comment -

        Hi Martin,
        Thank you for the awesome contribution. In my opinion i think that the approach will be the most suitable.

        Regards,
        Joseph.

        Show
        joseph9 ndangoh joseph suh added a comment - Hi Martin, Thank you for the awesome contribution. In my opinion i think that the approach will be the most suitable. Regards, Joseph.

          People

          • Assignee:
            desruisseaux Martin Desruisseaux
            Reporter:
            desruisseaux Martin Desruisseaux
          • Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

            • Created:
              Updated:

              Time Tracking

              Estimated:
              Original Estimate - 3,024h
              3,024h
              Remaining:
              Remaining Estimate - 3,024h
              3,024h
              Logged:
              Time Spent - Not Specified
              Not Specified

                Development