diff --git a/proj4/src/test/scala/geotrellis/proj4/io/wkt/WKTParserTest.scala b/proj4/src/test/scala/geotrellis/proj4/io/wkt/WKTParserTest.scala index 52f8f11d95..7e82a7f83e 100644 --- a/proj4/src/test/scala/geotrellis/proj4/io/wkt/WKTParserTest.scala +++ b/proj4/src/test/scala/geotrellis/proj4/io/wkt/WKTParserTest.scala @@ -9,7 +9,7 @@ class WKTParserTest extends FunSpec { parseAll(string, """"EPSG"""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -21,7 +21,7 @@ class WKTParserTest extends FunSpec { parseAll(string, """"Barbados 1938 / Barbados National Grid"""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -33,7 +33,7 @@ class WKTParserTest extends FunSpec { parseAll(string, """"RGR92 (3D deg)"""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -45,7 +45,7 @@ class WKTParserTest extends FunSpec { parseAll(comma, """,""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -57,7 +57,7 @@ class WKTParserTest extends FunSpec { parseAll(comma, """, """) match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -69,7 +69,7 @@ class WKTParserTest extends FunSpec { parseAll(double, "-220.3") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -81,7 +81,7 @@ class WKTParserTest extends FunSpec { parseAll(int, "12") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -93,7 +93,7 @@ class WKTParserTest extends FunSpec { parseAll(int, "-12") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -105,7 +105,7 @@ class WKTParserTest extends FunSpec { parseAll(value, "12") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -117,7 +117,7 @@ class WKTParserTest extends FunSpec { parseAll(value, "12.123") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -129,7 +129,7 @@ class WKTParserTest extends FunSpec { parseAll(value, """"helloWorld"""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -141,7 +141,7 @@ class WKTParserTest extends FunSpec { parseAll(value, """"Barbados 1938 / Barbados National Grid"""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -153,7 +153,7 @@ class WKTParserTest extends FunSpec { parseAll(authority, """AUTHORITY["EPSG","7019"]""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -166,7 +166,7 @@ class WKTParserTest extends FunSpec { parseAll(spheroid, """SPHEROID["GRS 1980", 6378137.0, 298.257222101, AUTHORITY["EPSG","7019"]]""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -178,7 +178,7 @@ class WKTParserTest extends FunSpec { parseAll(spheroid, """SPHEROID["GRS 1980", 6378137.0, 298.257222101]""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -190,7 +190,7 @@ class WKTParserTest extends FunSpec { parseAll(toWgs, """TOWGS84[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -206,7 +206,7 @@ class WKTParserTest extends FunSpec { parseAll(datum, """DATUM["NAD83 Canadian Spatial Reference System", SPHEROID["GRS 1980", 6378137.0, 298.257222101, AUTHORITY["EPSG","7019"]], TOWGS84[-0.991, 1.9072, 0.5129, 0.0257899075194932, -0.009650098960270402, -0.011659943232342112, 0.0], AUTHORITY["EPSG","6140"]]""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -221,7 +221,7 @@ class WKTParserTest extends FunSpec { parseAll(datum, """DATUM["NAD83 Canadian Spatial Reference System", SPHEROID["GRS 1980", 6378137.0, 298.257222101, AUTHORITY["EPSG","7019"]], AUTHORITY["EPSG","6140"]]""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -236,7 +236,7 @@ class WKTParserTest extends FunSpec { parseAll(datum, """DATUM["NAD83 Canadian Spatial Reference System", SPHEROID["GRS 1980", 6378137.0, 298.257222101, AUTHORITY["EPSG","7019"]], TOWGS84[-0.991, 1.9072, 0.5129, 0.0257899075194932, -0.009650098960270402, -0.011659943232342112, 0.0]]""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -249,7 +249,7 @@ class WKTParserTest extends FunSpec { parseAll(primeM, """PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]]""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -262,7 +262,7 @@ class WKTParserTest extends FunSpec { parseAll(primeM, """PRIMEM["Greenwich", 0.0]""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -276,7 +276,7 @@ class WKTParserTest extends FunSpec { parseAll(twinAxis, """AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH]""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -288,7 +288,7 @@ class WKTParserTest extends FunSpec { parseAll(unitField, """UNIT["degree", 0.017453292519943295]""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -312,7 +312,7 @@ class WKTParserTest extends FunSpec { parseAll(geogcs, geo) match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -325,7 +325,7 @@ class WKTParserTest extends FunSpec { parseAll(projection, """PROJECTION["Lambert_Conformal_Conic_2SP", AUTHORITY["EPSG","9802"]]""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -337,7 +337,7 @@ class WKTParserTest extends FunSpec { parseAll(parameter, """PARAMETER["central_meridian", 3.0]""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -353,7 +353,7 @@ class WKTParserTest extends FunSpec { parseAll(parameterList, """PARAMETER["central_meridian", 3.0], PARAMETER["latitude_of_origin", 42.0], PARAMETER["standard_parallel_1", 42.75], PARAMETER["false_easting", 1700000.0]""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -393,7 +393,7 @@ class WKTParserTest extends FunSpec { parseAll(projcs, projcsString) match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -410,7 +410,7 @@ class WKTParserTest extends FunSpec { parseAll(vertcs, """VERT_CS["EVRF2007 height", VERT_DATUM["European Vertical Reference Frame 2007", 2005, AUTHORITY["EPSG","5215"]], UNIT["m", 1.0], AXIS["Gravity-related height", UP], AUTHORITY["EPSG","5621"]]""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -424,7 +424,7 @@ class WKTParserTest extends FunSpec { parseAll(getAxisList, """AXIS["x", EAST], AXIS["y", NORTH]""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -436,7 +436,7 @@ class WKTParserTest extends FunSpec { parseAll(localDatum, """LOCAL_DATUM["Unknown", 0]""") match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -456,7 +456,7 @@ class WKTParserTest extends FunSpec { parseAll(localcs, localCSString) match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -480,7 +480,7 @@ class WKTParserTest extends FunSpec { parseAll(geoccs, geoCCSString) match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -524,7 +524,7 @@ class WKTParserTest extends FunSpec { parseAll(compdcs, geoCCSString) match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } @@ -560,7 +560,7 @@ class WKTParserTest extends FunSpec { parseAll(projcs, projcsString) match { case Success(n, _) => assert(n == expected) - case Failure(msg, _) => + case NoSuccess(msg, _) => info(msg) fail() } diff --git a/raster/src/main/scala/geotrellis/raster/render/ColorMaps.scala b/raster/src/main/scala/geotrellis/raster/render/ColorMaps.scala new file mode 100644 index 0000000000..8fb4cda3b7 --- /dev/null +++ b/raster/src/main/scala/geotrellis/raster/render/ColorMaps.scala @@ -0,0 +1,96 @@ +/* + * Copyright 2017 Astraea, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package geotrellis.raster.render + +/** + * Library of color maps. + * + * @author sfitch + * @since 3/15/17 + */ +object ColorMaps extends ClassificationColorMaps + +trait ClassificationColorMaps { + + /** + * IGBP Land Cover Classes + * Source: https://lpdaac.usgs.gov/about/news_archive/modisterra_land_cover_types_yearly_l3_global_005deg_cmg_mod12c1 + */ + object IGBP extends IntColorMap(Map( + // @formatter:off + 255 -> 0x000000FF, // Fill Value + 0 -> 0x000080FF, // Water + 1 -> 0x008000FF, // Evergreen Needleleaf Forest + 2 -> 0x00FF00FF, // Evergreen Broadleaf Forest + 3 -> 0x99CC00FF, // Deciduous Needleleaf Forest + 4 -> 0x99FF99FF, // Deciduous Broadleaf Forest + 5 -> 0x339966FF, // Mixed Forest + 6 -> 0x993366FF, // Closed Shrubland + 7 -> 0xFFCC99FF, // Open Shrubland + 8 -> 0xCCFFCCFF, // Woody Savannas + 9 -> 0xFFCC00FF, // Savannas + 10 -> 0xFF9900FF, // Grasslands + 11 -> 0x006699FF, // Permanent Wetlands + 12 -> 0xFFFF00FF, // Croplands + 13 -> 0xFF0000FF, // Urban and Built-Up + 14 -> 0x999966FF, // Cropland/Natural Vegetation Mosaic + 15 -> 0xFFFFFFFF, // Snow and Ice + 16 -> 0x808080FF, // Barren or Sparsely Vegetated + 254 -> 0x000000FF // Unclassified + // @formatter:on + ), + defaultOptions + ) + + /** + * NLCD 92 Land Cover Classes + * Source: https://landcover.usgs.gov/classes.php + */ + object NLCD extends IntColorMap(Map( + // @formatter:off + 11 -> 0x526095FF, // Open Water + 12 -> 0xFFFFFFFF, // Perennial Ice/Snow + 21 -> 0xD28170FF, // Low Intensity Residential + 22 -> 0xEE0006FF, // High Intensity Residential + 23 -> 0x990009FF, // Commercial/Industrial/Transportation + 31 -> 0xBFB8B1FF, // Bare Rock/Sand/Clay + 32 -> 0x969798FF, // Quarries/Strip Mines/Gravel Pits + 33 -> 0x382959FF, // Transitional + 41 -> 0x579D57FF, // Deciduous Forest + 42 -> 0x2A6B3DFF, // Evergreen Forest + 43 -> 0xA6BF7BFF, // Mixed Forest + 51 -> 0xBAA65CFF, // Shrubland + 61 -> 0x45511FFF, // Orchards/Vineyards/Other + 71 -> 0xD0CFAAFF, // Grasslands/Herbaceous + 81 -> 0xCCC82FFF, // Pasture/Hay + 82 -> 0x9D5D1DFF, // Row Crops + 83 -> 0xCD9747FF, // Small Grains + 84 -> 0xA7AB9FFF, // Fallow + 85 -> 0xE68A2AFF, // Urban/Recreational Grasses + 91 -> 0xB6D8F5FF, // Woody Wetlands + 92 -> 0xB6D8F5FF // Emergent Herbaceous Wetlands + // @formatter:on + ), + defaultOptions + ) + + private val defaultOptions = ColorMap.Options( + classBoundaryType = Exact, + fallbackColor = 0x000000FF + ) +} +