public void GetColorTest() { string colorMapFile = Path.Combine(TestDataPath, "ColorMap.png"); IProjectionGridMap projectionGridMap = new MockClasses.MockProjectionGridMap(); ColorMapOrientation orientation = ColorMapOrientation.Vertical; double minimumValue = double.MinValue; double maximumValue = double.MaxValue; DataColorMap target = new DataColorMap(colorMapFile, projectionGridMap, orientation, minimumValue, maximumValue); Color expectedColor = Color.FromArgb(255, 164, 169, 230); Color actual = target.GetColor(200, 400); Assert.AreEqual(expectedColor, actual); }
/// <summary> /// Processes the input equirectangular dataset. /// </summary> /// <param name="inputFile"> /// Input File path. /// </param> /// <param name="outputDir"> /// Output directory where pyramid is generated. /// </param> /// <param name="colorMapPath"> /// Map of color map file. /// </param> /// <param name="orientation"> /// Orientation of color map file. /// </param> /// <param name="projection"> /// Projection type. /// </param> public static void ProcessEquirectangularGrid(string inputFile, string outputDir, string colorMapPath, ColorMapOrientation orientation, ProjectionTypes projection) { Trace.TraceInformation("{0}: Reading input dataset...", DateTime.Now.TimeOfDay.ToString(@"hh\:mm\:ss", CultureInfo.InvariantCulture)); // Get grid details from the input file var dataGridDetails = DataGridHelper.LoadFromFile(inputFile); // Populate the data grid using grid details var dataGrid = new DataGrid(dataGridDetails.Data, true); // Build a equirectangular projection grid map using the data grid and boundary details var equirectangularGridMap = new EquirectangularGridMap(dataGrid, dataGridDetails.Boundary); // Build a color map using equirectangular projection grid map var dataColorMap = new DataColorMap(colorMapPath, equirectangularGridMap, orientation, dataGridDetails.MinimumThreshold, dataGridDetails.MaximumThreshold); // Define an instance of ITileCreator to create image tiles. ITileCreator imageTileCreator = TileCreatorFactory.CreateImageTileCreator(dataColorMap, projection, outputDir); Trace.TraceInformation("{0}: Building base and parent levels...", DateTime.Now.TimeOfDay.ToString(@"hh\:mm\:ss", CultureInfo.InvariantCulture)); TileGenerator tileGenerator = new TileGenerator(imageTileCreator); int zoomLevels = 5; tileGenerator.Generate(zoomLevels); string fileName = Path.GetFileNameWithoutExtension(inputFile); // Generate Thumbnail Images. Trace.TraceInformation("{0}: Building Thumbnail image..", DateTime.Now.TimeOfDay.ToString(@"hh\:mm\:ss", CultureInfo.InvariantCulture)); ImageTileSerializer tileSerializer = new ImageTileSerializer(TileHelper.GetDefaultImageTilePathTemplate(outputDir), ImageFormat.Png); string thumbnailFile = Path.Combine(outputDir, fileName + ".jpeg"); TileHelper.GenerateThumbnail(tileSerializer.GetFileName(0, 0, 0), 96, 45, thumbnailFile, ImageFormat.Jpeg); // Create and save WTML file. Trace.TraceInformation("{0}: Generating WTML file...", DateTime.Now.TimeOfDay.ToString(@"hh\:mm\:ss", CultureInfo.InvariantCulture)); string textureTilePath = WtmlCollection.GetWtmlTextureTilePath(TileHelper.GetDefaultImageTilePathTemplate(outputDir), ImageFormat.Png.ToString()); WtmlCollection wtmlCollection = new WtmlCollection(fileName, thumbnailFile, textureTilePath, zoomLevels, projection); wtmlCollection.IsElevationModel = false; string path = Path.Combine(outputDir, fileName + ".wtml"); wtmlCollection.Save(path); Trace.TraceInformation("{0}: Collection successfully generated.", DateTime.Now.TimeOfDay.ToString(@"hh\:mm\:ss", CultureInfo.InvariantCulture)); }
public void GetNaNColorTest() { try { string colorMapFile = Path.Combine(TestDataPath, "ColorMap.png"); IProjectionGridMap projectionGridMap = new MockClasses.MockProjectionGridMap(); ColorMapOrientation orientation = ColorMapOrientation.Vertical; double minimumValue = double.MinValue; double maximumValue = double.MaxValue; DataColorMap target = new DataColorMap(colorMapFile, projectionGridMap, orientation, minimumValue, maximumValue); Color color = target.GetColor(double.NaN, double.NaN); Assert.AreEqual(color, Color.Transparent); } catch (Exception ex) { Assert.Fail(ex.Message); } }