public static string GetGeometry(double lat, double lon, UpdateDataModel input) { //double ln1 = lon - deltaLong; //double lt1 = lat - deltaLat; //double ln2 = lon + deltaLong; //double lt2 = lat + deltaLat; // return string.Format("Polygon(({0} {1},{0} {3}, {2} {3},{2} {1},{0} {1}))", ln1, lt1, ln2, lt2); return(string.Format( "Polygon(({0} {1},{0} {3}, {2} {3},{2} {1},{0} {1}))", lon - input.DeltaLongitude, lat - input.DeltaLatitude, lon + input.DeltaLongitude, lat + input.DeltaLatitude)); }
public static double GetAltitudeValue(double altValue, UpdateDataModel input) { double updatedValue = altValue; switch (input.AltitudeSytle) { case AltitudeStyle.Constant: updatedValue = altValue + input.AltitudeConstant; break; case AltitudeStyle.Linear: updatedValue = input.AlphaConstant + (altValue * input.BetaConstant); break; } return(updatedValue); }
internal void GenerateWWTColumns(UpdateDataModel input) { object[,] updatedData = UpdatedWWTData(input); if (updatedData != null) { ThisAddIn.ExcelApplication.DisplayAlerts = false; string newSheetname = "Updated - " + (this.currentWorksheet != null ? this.currentWorksheet.Name : string.Empty); // Checking existing sheets for the FetchClimate sheet, if exists deleting the sheet. if (ThisAddIn.ExcelApplication.ActiveWorkbook.Sheets.Count > 0) { foreach (_Worksheet sheet in ThisAddIn.ExcelApplication.ActiveWorkbook.Sheets) { if (sheet.Name == newSheetname) { sheet.Delete(); break; } } } ThisAddIn.ExcelApplication.DisplayAlerts = true; // Creating new sheet ThisAddIn.ExcelApplication.ActiveWorkbook.Sheets.Add(); _Worksheet workSheet = (_Worksheet)ThisAddIn.ExcelApplication.ActiveWorkbook.ActiveSheet; workSheet.Name = newSheetname; int rowCount = updatedData.GetLength(0); Office.Interop.Excel.Range excelRange = workSheet.get_Range("A1", ExcelColumnName(updatedData.GetLength(1)) + rowCount.ToString()); // Setting data to the excel. excelRange.SetValue(updatedData); Office.Interop.Excel.Range selectRange = workSheet.get_Range(ExcelColumnName(updatedData.GetLength(1) - 2) + "1", ExcelColumnName(updatedData.GetLength(1)) + rowCount.ToString()); selectRange.Select(); WorkflowController.Instance.CreateLayerMap(); } }
private object[,] UpdatedWWTData(UpdateDataModel input) { object[,] actualData = null; object[,] data = currentWorksheet.UsedRange.GetDataArray(false); var header = currentWorksheet.UsedRange.GetHeader(); if (data != null) { int rowCount = data.GetLength(0); int columnCount = data.GetLength(1); int latColumnIndex = 0; int longColumnIndex = 1; int colorColumnIndex = 2; int altitudeColumnIndex = 2; int rColumnIndex = 0; int gColumnIndex = 0; int bColumnIndex = 0; foreach (var item in header) { if (Common.Constants.LatSearchList.Contains(item.ToLower())) { latColumnIndex = header.IndexOf(item); } if (Common.Constants.LonSearchList.Contains(item.ToLower())) { longColumnIndex = header.IndexOf(item); } if (!string.IsNullOrWhiteSpace(input.ColorColumn) && string.Compare(input.ColorColumn.ToLower(), item, true) == 0) { colorColumnIndex = header.IndexOf(item); } if (string.Compare(input.AltitudeColumn.ToLower(), item, true) == 0) { altitudeColumnIndex = header.IndexOf(item); } if (!string.IsNullOrWhiteSpace(input.RColumn) && string.Compare(input.RColumn.ToLower(), item, true) == 0) { rColumnIndex = header.IndexOf(item); } if (!string.IsNullOrWhiteSpace(input.GColumn) && string.Compare(input.GColumn.ToLower(), item, true) == 0) { gColumnIndex = header.IndexOf(item); } if (!string.IsNullOrWhiteSpace(input.BColumn) && string.Compare(input.BColumn.ToLower(), item, true) == 0) { bColumnIndex = header.IndexOf(item); } } if (input.FilterBetweenBoundaries) { actualData = FilterDataWithInBoundaries(input, data, rowCount, columnCount, latColumnIndex, longColumnIndex, altitudeColumnIndex, rColumnIndex, gColumnIndex, bColumnIndex); } else { actualData = GetdataWithoutFilter(input, data, rowCount, columnCount, latColumnIndex, longColumnIndex, altitudeColumnIndex, rColumnIndex, gColumnIndex, bColumnIndex); } } return actualData; }
private object[,] UpdatedHuricaneData(UpdateDataModel input, object[,] updatedData) { object[,] data = currentWorksheet.UsedRange.GetDataArray(false); var header = currentWorksheet.UsedRange.GetHeader(); if (data != null) { int rowCount = data.GetLength(0); int columnCount = data.GetLength(1); int latColumnIndex = 0; int longColumnIndex = 1; int altitudeColumnIndex = 2; int sizeColumnIndex = 4; foreach (var item in header) { if (Common.Constants.LatSearchList.Contains(item.ToLower())) { latColumnIndex = header.IndexOf(item); } if (Common.Constants.LonSearchList.Contains(item.ToLower())) { longColumnIndex = header.IndexOf(item); } if (string.Compare(input.AltitudeColumn.ToLower(), item, true) == 0) { altitudeColumnIndex = header.IndexOf(item); } if (string.Compare("Size (miles)", item, true) == 0) { sizeColumnIndex = header.IndexOf(item); } } updatedData = new object[rowCount, columnCount + 3]; // Update Header values for (int columnnIndex = 0; columnnIndex < columnCount; columnnIndex++) { updatedData[0, columnnIndex] = data[1, columnnIndex + 1]; } updatedData[0, columnCount] = "Geometry"; updatedData[0, columnCount + 1] = "Altitude"; // Generate and update actual Data Values for (int rowIndex = 1; rowIndex < rowCount; rowIndex++) { for (int columnnIndex = 0; columnnIndex < columnCount; columnnIndex++) { updatedData[rowIndex, columnnIndex] = data[rowIndex + 1, columnnIndex + 1]; } // Update Geometry updatedData[rowIndex, columnCount] = UpdateDataModel.GetCircle( Convert.ToDouble(updatedData[rowIndex, latColumnIndex].ToString()), Convert.ToDouble(updatedData[rowIndex, longColumnIndex].ToString()), Convert.ToDouble(updatedData[rowIndex, sizeColumnIndex].ToString())); // Update Altitude updatedData[rowIndex, columnCount + 1] = UpdateDataModel.GetAltitudeValue( Convert.ToDouble(updatedData[rowIndex, altitudeColumnIndex].ToString()), input); } } return updatedData; }
private static object[,] GetdataWithoutFilter(UpdateDataModel input, object[,] data, int rowCount, int columnCount, int latColumnIndex, int longColumnIndex, int altitudeColumnIndex, int rColumnIndex, int gColumnIndex, int bColumnIndex) { object[,] updatedData = new object[rowCount, columnCount + 3]; // Update Header values for (int columnnIndex = 0; columnnIndex < columnCount; columnnIndex++) { updatedData[0, columnnIndex] = data[1, columnnIndex + 1]; } updatedData[0, columnCount] = "Geometry"; updatedData[0, columnCount + 1] = "Color"; updatedData[0, columnCount + 2] = "Altitude"; // Generate and update actual Data Values for (int rowIndex = 1; rowIndex < rowCount; rowIndex++) { for (int columnnIndex = 0; columnnIndex < columnCount; columnnIndex++) { updatedData[rowIndex, columnnIndex] = data[rowIndex + 1, columnnIndex + 1]; } // Update Geometry updatedData[rowIndex, columnCount] = UpdateDataModel.GetGeometry( Convert.ToDouble(updatedData[rowIndex, latColumnIndex].ToString()), Convert.ToDouble(updatedData[rowIndex, longColumnIndex].ToString()), input); // Update Color updatedData[rowIndex, columnCount + 1] = UpdateDataModel.GetColorValue( Convert.ToInt16(updatedData[rowIndex, rColumnIndex].ToString()), Convert.ToInt16(updatedData[rowIndex, gColumnIndex].ToString()), Convert.ToInt16(updatedData[rowIndex, bColumnIndex].ToString())); // Update Altitude updatedData[rowIndex, columnCount + 2] = UpdateDataModel.GetAltitudeValue( Convert.ToDouble(updatedData[rowIndex, altitudeColumnIndex].ToString()), input); } return updatedData; }
private static object[,] FilterDataWithInBoundaries(UpdateDataModel input, object[,] data, int rowCount, int columnCount, int latColumnIndex, int longColumnIndex, int altitudeColumnIndex, int rColumnIndex, int gColumnIndex, int bColumnIndex) { object[,] actualData = null; object[,] updatedData = new object[rowCount, columnCount + 3]; // Update Header values for (int columnnIndex = 0; columnnIndex < columnCount; columnnIndex++) { updatedData[0, columnnIndex] = data[1, columnnIndex + 1]; } updatedData[0, columnCount] = "Geometry"; updatedData[0, columnCount + 1] = "Color"; updatedData[0, columnCount + 2] = "Altitude"; int actualRowCount = 0; // Generate and update actual Data Values for (int rowIndex = 1; rowIndex < rowCount; rowIndex++) { if (UpdateDataModel.CheckWithinBoundary( Convert.ToDouble(data[rowIndex + 1, latColumnIndex + 1].ToString()), Convert.ToDouble(data[rowIndex + 1, longColumnIndex + 1].ToString()), input)) { actualRowCount++; for (int columnnIndex = 0; columnnIndex < columnCount; columnnIndex++) { updatedData[actualRowCount, columnnIndex] = data[rowIndex + 1, columnnIndex + 1]; } // Update Geometry updatedData[actualRowCount, columnCount] = UpdateDataModel.GetGeometry( Convert.ToDouble(updatedData[actualRowCount, latColumnIndex].ToString()), Convert.ToDouble(updatedData[actualRowCount, longColumnIndex].ToString()), input); // Update Color updatedData[actualRowCount, columnCount + 1] = UpdateDataModel.GetColorValue( Convert.ToInt16(updatedData[actualRowCount, rColumnIndex].ToString()), Convert.ToInt16(updatedData[actualRowCount, gColumnIndex].ToString()), Convert.ToInt16(updatedData[actualRowCount, bColumnIndex].ToString())); // Update Altitude updatedData[actualRowCount, columnCount + 2] = UpdateDataModel.GetAltitudeValue( Convert.ToDouble(updatedData[actualRowCount, altitudeColumnIndex].ToString()), input); } } actualData = new object[actualRowCount + 1, updatedData.GetLength(1)]; for (int row = 0; row < actualRowCount; row++) { for (int columnn = 0; columnn < updatedData.GetLength(1); columnn++) { actualData[row, columnn] = updatedData[row, columnn]; } } return actualData; }
public static string GetGeometry(double lat, double lon, UpdateDataModel input) { //double ln1 = lon - deltaLong; //double lt1 = lat - deltaLat; //double ln2 = lon + deltaLong; //double lt2 = lat + deltaLat; // return string.Format("Polygon(({0} {1},{0} {3}, {2} {3},{2} {1},{0} {1}))", ln1, lt1, ln2, lt2); return string.Format( "Polygon(({0} {1},{0} {3}, {2} {3},{2} {1},{0} {1}))", lon - input.DeltaLongitude, lat - input.DeltaLatitude, lon + input.DeltaLongitude, lat + input.DeltaLatitude); }
public static double GetAltitudeValue(double altValue, UpdateDataModel input) { double updatedValue = altValue; switch (input.AltitudeSytle) { case AltitudeStyle.Constant: updatedValue = altValue + input.AltitudeConstant; break; case AltitudeStyle.Linear: updatedValue = input.AlphaConstant + (altValue * input.BetaConstant); break; } return updatedValue; }
public static bool CheckWithinBoundary(double lat, double lon, UpdateDataModel input) { return input.MinLongitude <= lon && lon <= input.MaxLongitude && input.MinLatitude <= lat && lat <= input.MaxLatitude; }
/// <summary> /// Execute command event for update button. /// </summary> /// <param name="parameter">Command parameter.</param> public override void Execute(object parameter) { try { UpdateDataModel model = new UpdateDataModel(); model.AltitudeColumn = this.parent.Input.AltitudeColumn; model.AltitudeSytle = this.parent.Input.AltitudeSytle; model.AltitudeConstant = this.parent.Input.AltitudeConstant; model.AlphaConstant = this.parent.Input.AlphaConstant; model.BetaConstant = this.parent.Input.BetaConstant; model.ColorColumn = this.parent.Input.ColorColumn; model.ColorPalette = this.parent.Input.ColorPalette; model.ColorScheme = this.parent.Input.ColorScheme; model.ColorMax = this.parent.Input.ColorMax; model.ColorMin = this.parent.Input.ColorMin; model.DeltaLatitude = this.parent.Input.DeltaLatitude; model.DeltaLongitude = this.parent.Input.DeltaLongitude; model.RColumn = this.parent.Input.RColumn; model.GColumn = this.parent.Input.GColumn; model.BColumn = this.parent.Input.BColumn; model.MinLatitude = this.parent.Input.MinLatitude; model.MaxLatitude = this.parent.Input.MaxLatitude; model.MinLongitude = this.parent.Input.MinLongitude; model.MaxLongitude = this.parent.Input.MaxLongitude; model.FilterBetweenBoundaries = this.parent.Input.FilterBetweenBoundaries; WorkflowController.Instance.GenerateWWTColumns(model); // WorkflowController.Instance.GenerateHuricaneColumns(model); } catch (CustomException ex) { Ribbon.ShowError(ex.HasCustomMessage ? ex.Message : Resources.LayerOperationError); } catch (Exception exception) { Logger.LogException(exception); Ribbon.ShowError(Resources.DefaultErrorMessage); } // Closing the popup. this.parent.OnRequestClose(); }
public static bool CheckWithinBoundary(double lat, double lon, UpdateDataModel input) { return(input.MinLongitude <= lon && lon <= input.MaxLongitude && input.MinLatitude <= lat && lat <= input.MaxLatitude); }