Details

      Description

      This is an umbrella task for some coordinate operation methods not yet supported in Apache SIS. Coordinate operations include map projections (e.g. Transverse Mercator, Lambert Conic Conformal, etc.), datum shifts (e.g. transformations from NAD27 to NAD83 in United States), transformation of vertical coordinates, etc. We can of course not list all possible formulas that we do not support, but this JIRA task lists at least some of the operations listed in the EPSG guidance notes.

      The main material for this work is the EPSG guidance notes, which can be downloaded freely from the following site:

      IOGP Publication 373-7-2 – Geomatics Guidance Note number 7, part 2
      Coordinate Conversions and Transformations including Formulas
      http://www.epsg.org/GuidanceNotes

      Google summer of code students interested in this work would need to be reasonably comfortable with the Java language (but not necessarily with the JDK library at large, since this work uses relatively few JDK classes outside Math), and in mathematic. In particular, this work requires a good understanding of affine transforms: their representation as a matrix, and how to map a term in a formula to a coefficient in the affine transform matrix.

      Apache SIS has one advanced feature which is not easily found in popular geospatial software or text books: the capability to compute the derivative (or more precisely, the Jacobian) of a transformation at a given point. Implementation of this feature requires the capability to find the analytic derivative of a non-linear formula and to simplify it.

      Implementations of those formulas take place in one of the org.apache.sis.referencing.operation sub-packages (projection or transform). Implementations of JUnit test happen partially in Apache SIS, and partially in the "conformance module" of the GeoAPI project, if possible through the Geospatial Integrity of Geoscience Software (GIGS) tests.

        Issue Links

        1.
        Lambert Conic Conformal 1SP (EPSG:9801) Sub-task Closed Martin Desruisseaux
         
        2.
        Lambert Conic Conformal 2SP (EPSG:9802) Sub-task Closed Martin Desruisseaux
         
        3.
        Lambert Conic Conformal West Orientated (EPSG:9826) Sub-task Closed Martin Desruisseaux
         
        4.
        Lambert Conic Conformal Belgium (EPSG:9803) Sub-task Closed Martin Desruisseaux
         
        5.
        Lambert Conic Conformal Michigan (EPSG:1051) Sub-task Closed Martin Desruisseaux
         
        6. Lambert Conic Near-Conformal (EPSG:9817) Sub-task Open Unassigned
         
        7. Krovak (EPSG:9819) Sub-task Open Unassigned
         
        8. Krovak North Orientated (EPSG:1041) Sub-task Open Unassigned
         
        9. Krovak Modified (EPSG:1042) Sub-task Open Unassigned
         
        10. Krovak Modified North Orientated (EPSG:1043) Sub-task Open Unassigned
         
        11.
        Mercator variant A (EPSG:9804) Sub-task Closed Martin Desruisseaux
         
        12.
        Mercator variant B (EPSG:9805) Sub-task Closed Martin Desruisseaux
         
        13.
        Mercator variant C (EPSG:1044) Sub-task Closed Martin Desruisseaux
         
        14.
        Mercator (Spherical) (EPSG:1026) Sub-task Closed Martin Desruisseaux
         
        15.
        Popular Visualisation Pseudo Mercator (EPSG:1024) Sub-task Closed Martin Desruisseaux
         
        16. Cassini-Soldner (EPSG:9806) Sub-task Open Unassigned
         
        17. Hyperbolic Cassini-Soldner (EPSG:9833) Sub-task Open Unassigned
         
        18.
        Transverse Mercator (EPSG:9807) Sub-task Closed Martin Desruisseaux
         
        19.
        Transverse Mercator Zoned Grid System (EPSG:9824) Sub-task Resolved Martin Desruisseaux
         
        20.
        Transverse Mercator South Orientated (EPSG:9808) Sub-task Closed Martin Desruisseaux
         
        21. Hotine Oblique Mercator (EPSG:9812, 9815) Sub-task Open Unassigned
         
        22. Laborde Oblique Mercator (EPSG:9813) Sub-task Open Unassigned
         
        23.
        Oblique and Equatorial Stereographic (EPSG:9809) Sub-task Resolved Marechal Remi
         
        24.
        Polar Stereographic variant A (EPSG:9810) Sub-task Closed Martin Desruisseaux
         
        25.
        Polar Stereographic variant B (EPSG:9829) Sub-task Closed Martin Desruisseaux
         
        26.
        Polar Stereographic variant C (EPSG:9830) Sub-task Closed Martin Desruisseaux
         
        27. New Zealand Map Grid (EPSG:9811) Sub-task Open Unassigned
         
        28. Tunisia Mining Grid (EPSG:9816) Sub-task Open Unassigned
         
        29. American Polyconic (EPSG:9818) Sub-task Open Unassigned
         
        30. Lambert Azimuthal Equal Area (EPSG:9820) Sub-task Open Unassigned
         
        31. Lambert Azimuthal Equal Area (Spherical) (EPSG:1027) Sub-task Open Unassigned
         
        32.
        Lambert Cylindrical Equal Area (EPSG:9835) Sub-task Resolved Martin Desruisseaux
         
        33.
        Lambert Cylindrical Equal Area (Spherical) (EPSG:9834) Sub-task Resolved Martin Desruisseaux
         
        34.
        Albers Equal Area (EPSG:9822) Sub-task Closed Martin Desruisseaux
         
        35. Equidistant Cylindrical (EPSG:1028) Sub-task Open Unassigned
         
        36.
        Equidistant Cylindrical (Spherical) (EPSG:1029) Sub-task Closed Martin Desruisseaux
         
        37. Bonne (EPSG:9827) Sub-task Open Unassigned
         
        38. Bonne South Orientated (EPSG:9828) Sub-task Open Unassigned
         
        39. Modified Azimuthal Equidistant (EPSG:9832) Sub-task Open Unassigned
         
        40. Guam Projection (EPSG:9831) Sub-task Open Unassigned
         
        41. Vertical Perspective (EPSG:9838) Sub-task Open Unassigned
         
        42. Vertical Perspective, orthographic case (EPSG:9839) Sub-task Open Unassigned
         
        43. Orthographic (EPSG:9840) Sub-task Open Unassigned
         
        44. Colombia Urban Projection (EPSG:1052) Sub-task Open Unassigned
         
        45.
        Geographic/Geocentric conversions (EPSG:9602) Sub-task Closed Martin Desruisseaux
         
        46. Geocentric/topocentric conversions (EPSG:9836) Sub-task Open Unassigned
         
        47. Geographic/topocentric conversions (EPSG:9837) Sub-task Open Unassigned
         
        48.
        Geographic 3D to 2D conversions (EPSG:9659) Sub-task Resolved Martin Desruisseaux
         
        49. General polynomial of degree 6 (EPSG:9648) Sub-task Open Unassigned
         
        50. Reversible polynomial of degree 4 (EPSG:9651) Sub-task Open Unassigned
         
        51. Polynomial transformation for Spain (EPSG:9617) Sub-task Open Unassigned
         
        52.
        Affine Parametric Transformation (EPSG:9624) Sub-task Closed Martin Desruisseaux
         
        53. Affine Geometric Transformation (EPSG:9623) Sub-task Open Unassigned
         
        54. Similarity Transformation (EPSG:9621) Sub-task Open Unassigned
         
        55. P6 Right-handed Seismic Bin Grid Transformation (EPSG:9666) Sub-task Open Unassigned
         
        56. P6 Left-handed Seismic Bin Grid Transformation (EPSG:1049) Sub-task Open Unassigned
         
        57. Cartesian Grid Offsets from Form Function (EPSG:1036) Sub-task Open Unassigned
         
        58.
        Vertical Offset (EPSG:9616) Sub-task Resolved Martin Desruisseaux
         
        59. Vertical Offset and Slope (EPSG:9657) Sub-task Open Unassigned
         
        60. Molodensky-Badekas transformation PV geocentric domain (EPSG:1061) Sub-task Open Unassigned
         
        61. Molodensky-Badekas transformation CF geocentric domain (EPSG:1034) Sub-task Open Unassigned
         
        62.
        Position Vector transformation geocentric domain (EPSG:1033) Sub-task Resolved Martin Desruisseaux
         
        63.
        Coordinate Frame Rotation geocentric domain (EPSG:1032) Sub-task Resolved Martin Desruisseaux
         
        64. Time-dependent Position Vector transformation (EPSG:1053) Sub-task Open Martin Desruisseaux
         
        65. Time-dependent Coordinate Frame Rotation (EPSG:1056) Sub-task Open Martin Desruisseaux
         
        66.
        3-parameter geocentric translations (EPSG:1031) Sub-task Resolved Martin Desruisseaux
         
        67.
        France geocentric interpolation (EPSG:9655) Sub-task Resolved Martin Desruisseaux
         
        68.
        Abridged Molodensky transformation (EPSG:9605) Sub-task Resolved Martin Desruisseaux
         
        69.
        Geographic Offsets (EPSG:9660) Sub-task Resolved Martin Desruisseaux
         
        70.
        Geographic Offset by Interpolation of Gridded Data (EPSG:9613, 9615, 9633) Sub-task Resolved Martin Desruisseaux
         
        71. Geographic3D to Geographic2D + gravity-related height Sub-task Open Unassigned
         
        72.
        Geographic2D with Height Offsets (EPSG:9618) Sub-task Resolved Martin Desruisseaux
         
        73.
        Axis order reversal (EPSG:9843) Sub-task Resolved Martin Desruisseaux
         

          Activity

          Hide
          joseph9 ndangoh joseph suh added a comment -

          Hi Martin,

          My name is Ndangoh Joseph S, a third year undergraduate in the university of Buea Cameroon, studying computer software engineering. I found this project interesting and i will like to participate in gsoc 2016 to contribute to this project.

          I have good programming skills in java, java spring framework, javascript and c. I am currently working in an emerging startup, Skylabase Enterprize(http://www.skylabase.com), as a software developer.

          I have read the project idea and have seen the open issues and also the appreciable work you have done. I am going through the documentation here http://www.epsg.org/GuidanceNotes, inorder to understand the project better.

          Please guide me on what to do next.

          Thanks
          Ndangoh Joseph.

          Show
          joseph9 ndangoh joseph suh added a comment - Hi Martin, My name is Ndangoh Joseph S, a third year undergraduate in the university of Buea Cameroon, studying computer software engineering. I found this project interesting and i will like to participate in gsoc 2016 to contribute to this project. I have good programming skills in java, java spring framework, javascript and c. I am currently working in an emerging startup, Skylabase Enterprize( http://www.skylabase.com ), as a software developer. I have read the project idea and have seen the open issues and also the appreciable work you have done. I am going through the documentation here http://www.epsg.org/GuidanceNotes , inorder to understand the project better. Please guide me on what to do next. Thanks Ndangoh Joseph.
          Hide
          desruisseaux Martin Desruisseaux added a comment -

          Hello Joseph

          In my understanding, the next step would be to write a document describing the project that you would like to do. You can copy and edit elements from this page as you wish. Instructions are available there:

          http://community.apache.org/gsoc.html

          The document could be written in a Google doc, or on a SIS wiki page (https://cwiki.apache.org/confluence/display/SIS/SIS+Wiki), or in other ways as you prefer. We could propose modifications and do some cycles until the proposal is ready for submission on the Google web site.

          Would this approach be okay?

          Show
          desruisseaux Martin Desruisseaux added a comment - Hello Joseph In my understanding, the next step would be to write a document describing the project that you would like to do. You can copy and edit elements from this page as you wish. Instructions are available there: http://community.apache.org/gsoc.html The document could be written in a Google doc, or on a SIS wiki page ( https://cwiki.apache.org/confluence/display/SIS/SIS+Wiki ), or in other ways as you prefer. We could propose modifications and do some cycles until the proposal is ready for submission on the Google web site. Would this approach be okay?
          Hide
          milindakasun Milinda Kasun added a comment -

          Hi,
          I am Milinda Kasun. I am a Final Year undergraduate of Computer Science Engineering of University of Moratuwa. I have good knowledge about Java and I would like to participate for this project for GSoC 2017. It would be greatly appreciated if you could help me get started.
          Thank You

          Show
          milindakasun Milinda Kasun added a comment - Hi, I am Milinda Kasun. I am a Final Year undergraduate of Computer Science Engineering of University of Moratuwa. I have good knowledge about Java and I would like to participate for this project for GSoC 2017. It would be greatly appreciated if you could help me get started. Thank You
          Hide
          desruisseaux Martin Desruisseaux added a comment -

          Hello Milinda, and welcome!

          For participating to a GSoC, each projects have their own way but for SIS I suggest the following:

          • Take inspiration from a SIS task of your choice (SIS-212, SIS-351, SIS-350 or other). You can also make your own proposal if you wish.
          • Start drafting your proposal in the format of your choice (it may be GoogleDoc, GitHub readme file, ASCII doc, an OpenOffice document, etc.). I suggest to organize the proposal as described here: http://write.flossmanuals.net/gsocstudentguide/writing-a-proposal/
          • Share the link to your proposal, get feedback from potential mentor, modify your proposal, etc. Many iterations may be necessary. You can ask questions on the SIS developer mailing list.
          • Once ready, submit the proposal to Google.

          Before to start the project, it is important that the mentor can see from the proposal that the student has a good idea of the technical steps required for doing this task. I also recommend to submit more than one proposal since we do not know in advance which projects will be accepted. Each student can submit up to 5 proposals to different projects.

          Show
          desruisseaux Martin Desruisseaux added a comment - Hello Milinda, and welcome! For participating to a GSoC, each projects have their own way but for SIS I suggest the following: Take inspiration from a SIS task of your choice ( SIS-212 , SIS-351 , SIS-350 or other). You can also make your own proposal if you wish. Start drafting your proposal in the format of your choice (it may be GoogleDoc, GitHub readme file, ASCII doc, an OpenOffice document, etc.). I suggest to organize the proposal as described here: http://write.flossmanuals.net/gsocstudentguide/writing-a-proposal/ Share the link to your proposal, get feedback from potential mentor, modify your proposal, etc. Many iterations may be necessary. You can ask questions on the SIS developer mailing list. Once ready, submit the proposal to Google. Before to start the project, it is important that the mentor can see from the proposal that the student has a good idea of the technical steps required for doing this task. I also recommend to submit more than one proposal since we do not know in advance which projects will be accepted. Each student can submit up to 5 proposals to different projects.

            People

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

              Dates

              • Created:
                Updated:

                Development