/beam-core/src/test/java/org/esa/beam/framework/dataop/projection/MollweideTest.java

http://github.com/bcdev/beam · Java · 66 lines · 38 code · 9 blank · 19 comment · 0 complexity · 4dd3e8ced4eaf20a3312bb6a4f2cd76e MD5 · raw file

  1. /*
  2. * Copyright (C) 2010 Brockmann Consult GmbH (info@brockmann-consult.de)
  3. *
  4. * This program is free software; you can redistribute it and/or modify it
  5. * under the terms of the GNU General Public License as published by the Free
  6. * Software Foundation; either version 3 of the License, or (at your option)
  7. * any later version.
  8. * This program is distributed in the hope that it will be useful, but WITHOUT
  9. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  10. * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  11. * more details.
  12. *
  13. * You should have received a copy of the GNU General Public License along
  14. * with this program; if not, see http://www.gnu.org/licenses/
  15. */
  16. package org.esa.beam.framework.dataop.projection;
  17. import org.geotools.parameter.ParameterGroup;
  18. import org.opengis.referencing.operation.MathTransform;
  19. import java.util.ArrayList;
  20. import java.util.List;
  21. /**
  22. * Test data is taken from General Cartographic Transformation Package (GCTP).
  23. * It can be retrieved from: ftp://edcftp.cr.usgs.gov/pub/software/gctpc/
  24. */
  25. public final class MollweideTest extends AbstractProjectionTest<Mollweide.Provider> {
  26. @Override
  27. protected Mollweide.Provider createProvider() {
  28. return new Mollweide.Provider();
  29. }
  30. @Override
  31. public MathTransform createMathTransform(Mollweide.Provider provider) {
  32. final ParameterGroup params = new ParameterGroup(provider.getParameters());
  33. params.parameter("semi_major").setValue(6378206.400);
  34. params.parameter("semi_minor").setValue(6378206.400);
  35. params.parameter("central_meridian").setValue(-100.000);
  36. params.parameter("false_easting").setValue(0.0);
  37. params.parameter("false_northing").setValue(0.0);
  38. return provider.createMathTransform(params);
  39. }
  40. @Override
  41. protected List<ProjTestData> createTestData() {
  42. List<ProjTestData> dataList = new ArrayList<ProjTestData>(13);
  43. dataList.add(new ProjTestData(-180.0, -90, 0.0, -9020145.99445, -100.0, -90.0));
  44. dataList.add(new ProjTestData(-180.0, -75.0, -3392851.08440, -8172751.64401, 180, -75));
  45. dataList.add(new ProjTestData(-165.0, 0.0, -6514549.88492, 0.00000));
  46. dataList.add(new ProjTestData(-130.0, -70.0, -1524588.86019, -7774554.20128));
  47. dataList.add(new ProjTestData(-30.0, 50.0, 5324490.23820, 5873535.86499));
  48. dataList.add(new ProjTestData(0.0, 0.0, 10022384.43834, 0.00000));
  49. dataList.add(new ProjTestData(20.0, -45.0, 9692535.26606, -5340303.01832));
  50. dataList.add(new ProjTestData(70.0, 20.0, 16395601.15334, 2453612.57967));
  51. dataList.add(new ProjTestData(90.0, -90.0, 0.0, -9020145.99445, -100.00000, -90.00000));
  52. dataList.add(new ProjTestData(155.0, -55.0, -7431377.50698, -6386649.45996));
  53. dataList.add(new ProjTestData(180.0, 65.0, -4659298.68057, 7340810.54044));
  54. dataList.add(new ProjTestData(180.0, 90.0, 0.0, 9020145.99445, -100.00000, 90.00000));
  55. return dataList;
  56. }
  57. }