Index: DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.LayerCreator.Tests/LayerCreatorTests.cs =================================================================== diff -u -r3183 -r3184 --- DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.LayerCreator.Tests/LayerCreatorTests.cs (.../LayerCreatorTests.cs) (revision 3183) +++ DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.LayerCreator.Tests/LayerCreatorTests.cs (.../LayerCreatorTests.cs) (revision 3184) @@ -143,6 +143,36 @@ } + [Test] + public void TestDetermineLoweredSurfaceLineForGivenLayerThicknessWithAckwardPoints() + { + var originalSurfaceLine = CreateSimpleStraightSurfaceLineWithAckwardPoints(); + var loweredSurfaceLine = originalSurfaceLine.CreateLoweredSurfaceLineForGivenLayerThickness(1); + Assert.AreEqual(11, loweredSurfaceLine.SurfaceLinePoints.Count); + Assert.AreEqual(0, loweredSurfaceLine.SurfaceLinePoints[0].XCoordinate, Diff); + Assert.AreEqual(0, loweredSurfaceLine.SurfaceLinePoints[0].ZCoordinate, Diff); + Assert.AreEqual(5, loweredSurfaceLine.SurfaceLinePoints[1].XCoordinate, Diff); + Assert.AreEqual(0, loweredSurfaceLine.SurfaceLinePoints[1].ZCoordinate, Diff); + Assert.AreEqual(10, loweredSurfaceLine.SurfaceLinePoints[2].XCoordinate, Diff); + Assert.AreEqual(0, loweredSurfaceLine.SurfaceLinePoints[2].ZCoordinate, Diff); + Assert.AreEqual(12, loweredSurfaceLine.SurfaceLinePoints[3].XCoordinate, Diff); + Assert.AreEqual(0, loweredSurfaceLine.SurfaceLinePoints[3].ZCoordinate, Diff); + Assert.AreEqual(14, loweredSurfaceLine.SurfaceLinePoints[4].XCoordinate, Diff); + Assert.AreEqual(0, loweredSurfaceLine.SurfaceLinePoints[4].ZCoordinate, Diff); + Assert.AreEqual(14.01, loweredSurfaceLine.SurfaceLinePoints[5].XCoordinate, Diff); + Assert.AreEqual(-1, loweredSurfaceLine.SurfaceLinePoints[5].ZCoordinate, Diff); + Assert.AreEqual(15.5, loweredSurfaceLine.SurfaceLinePoints[6].XCoordinate, Diff); + Assert.AreEqual(-1, loweredSurfaceLine.SurfaceLinePoints[6].ZCoordinate, Diff); + Assert.AreEqual(15.99, loweredSurfaceLine.SurfaceLinePoints[7].XCoordinate, Diff); + Assert.AreEqual(-1, loweredSurfaceLine.SurfaceLinePoints[7].ZCoordinate, Diff); + Assert.AreEqual(16, loweredSurfaceLine.SurfaceLinePoints[8].XCoordinate, Diff); + Assert.AreEqual(0, loweredSurfaceLine.SurfaceLinePoints[8].ZCoordinate, Diff); + Assert.AreEqual(22, loweredSurfaceLine.SurfaceLinePoints[9].XCoordinate, Diff); + Assert.AreEqual(0, loweredSurfaceLine.SurfaceLinePoints[9].ZCoordinate, Diff); + Assert.AreEqual(30, loweredSurfaceLine.SurfaceLinePoints[10].XCoordinate, Diff); + Assert.AreEqual(0, loweredSurfaceLine.SurfaceLinePoints[10].ZCoordinate, Diff); + + } private SurfaceLine CreateSimpleStraightSurfaceLine() { var surfaceLine = new SurfaceLine(); @@ -210,5 +240,92 @@ surfaceLine.SurfaceLinePoints.Add(point5); return surfaceLine; } + + private SurfaceLine CreateSimpleStraightSurfaceLineWithAckwardPoints() + { + var surfaceLine = new SurfaceLine(); + surfaceLine.SurfaceLineId = "SimpleStraightSurfaceLine"; + var point = new SurfaceLinePoint + { + XCoordinate = 0, + ZCoordinate = 0, + PointType = CharacteristicPointType.SurfaceLevelOutside + }; + surfaceLine.SurfaceLinePoints.Add(point); + var pointA = new SurfaceLinePoint + { + XCoordinate = 5, + ZCoordinate = 0, + PointType = CharacteristicPointType.None + }; + surfaceLine.SurfaceLinePoints.Add(pointA); + var point1 = new SurfaceLinePoint + { + XCoordinate = 10, + ZCoordinate = 0, + PointType = CharacteristicPointType.DikeToeAtRiver + }; + surfaceLine.SurfaceLinePoints.Add(point1); + var point2 = new SurfaceLinePoint + { + XCoordinate = 12, + ZCoordinate = 0, + PointType = CharacteristicPointType.DikeTopAtRiver + }; + surfaceLine.SurfaceLinePoints.Add(point2); + var point3 = new SurfaceLinePoint + { + XCoordinate = 14, + ZCoordinate = 0, + PointType = CharacteristicPointType.DikeTopAtPolder + }; + surfaceLine.SurfaceLinePoints.Add(point3); + var point3A = new SurfaceLinePoint + { + // is less than 0.01 meter beyond the point that is to be lowered with offset of 0.01 m. So this point should NOT be found in the lowered line + XCoordinate = 14.001, + ZCoordinate = 0, + PointType = CharacteristicPointType.None + }; + surfaceLine.SurfaceLinePoints.Add(point3A); + var point3B = new SurfaceLinePoint + { + // make this 15.5 instead of 15 to be different from ordinary SimpleStraightSurfaceLine. + XCoordinate = 15.5, + ZCoordinate = 0, + PointType = CharacteristicPointType.None + }; + surfaceLine.SurfaceLinePoints.Add(point3B); + var point3C = new SurfaceLinePoint + { + // is less than 0.01 meter in front off the point that is to be lowered with offset of -0.01 m. So this point should NOT be found in the lowered line + XCoordinate = 15.999, + ZCoordinate = 0, + PointType = CharacteristicPointType.None + }; + surfaceLine.SurfaceLinePoints.Add(point3C); + var point4 = new SurfaceLinePoint + { + XCoordinate = 16, + ZCoordinate = 0, + PointType = CharacteristicPointType.DikeToeAtPolder + }; + surfaceLine.SurfaceLinePoints.Add(point4); + var point4A = new SurfaceLinePoint + { + XCoordinate = 22, + ZCoordinate = 0, + PointType = CharacteristicPointType.None + }; + surfaceLine.SurfaceLinePoints.Add(point4A); + var point5 = new SurfaceLinePoint + { + XCoordinate = 30, + ZCoordinate = 0, + PointType = CharacteristicPointType.SurfaceLevelInside + }; + surfaceLine.SurfaceLinePoints.Add(point5); + return surfaceLine; + } } } \ No newline at end of file Index: DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Importer/CsvImporter.cs =================================================================== diff -u -r3176 -r3184 --- DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Importer/CsvImporter.cs (.../CsvImporter.cs) (revision 3176) +++ DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Importer/CsvImporter.cs (.../CsvImporter.cs) (revision 3184) @@ -142,7 +142,7 @@ List errors) { const string importFile = "characteristicpoints.csv"; - const double diff = 1e-4; + const double tolerance = 1e-4; string fullFilePath = Path.Combine(inputFolderName, importFile); try { @@ -163,11 +163,10 @@ characteristicPointRecord.SurfaceLineId)); return false; } - //surfaceLine.SurfaceLineId = surfaceLineRecord.SurfaceLineId; foreach (var point in characteristicPointRecord.Points) { - // ignore 'unset' points - if (!(Math.Abs(point.X + 1) < diff && Math.Abs(point.Y + 1) < diff && Math.Abs(point.Z + 1) < diff)) + // ignore 'unset' points i.e. points with -1, -1, -1 as coordinates. + if (!(Math.Abs(point.X + 1) < tolerance && Math.Abs(point.Y + 1) < tolerance && Math.Abs(point.Z + 1) < tolerance)) { var surfaceLinePoint = surfaceLine.GetSurfaceLinePointByLocation(point.X, point.Z); if (surfaceLinePoint == null) Index: DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Importer/CharacteristicPointCsvIdentifiers.cs =================================================================== diff -u -r3140 -r3184 --- DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Importer/CharacteristicPointCsvIdentifiers.cs (.../CharacteristicPointCsvIdentifiers.cs) (revision 3140) +++ DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Importer/CharacteristicPointCsvIdentifiers.cs (.../CharacteristicPointCsvIdentifiers.cs) (revision 3184) @@ -28,8 +28,9 @@ { // The following 2 fields point to the same data // location_id is the preferred columnname - // Profielnaam is used for backward compatiblity - public const string SurfaceLineId = "Profielnaam"; public const string LocationId = "LocationId"; + // Profielnaam is used for backward compatibility + public const string SurfaceLineId = "Profielnaam"; + public const string LocationId = "LocationId"; public const string SurfaceLevelInsideX = "X_Maaiveld binnenwaarts"; public const string SurfaceLevelInsideY = "Y_Maaiveld binnenwaarts"; Index: DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Data/SurfaceLine.cs =================================================================== diff -u -r3183 -r3184 --- DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Data/SurfaceLine.cs (.../SurfaceLine.cs) (revision 3183) +++ DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Data/SurfaceLine.cs (.../SurfaceLine.cs) (revision 3184) @@ -88,37 +88,28 @@ return surfaceLinePoint; } + /// + /// Creates the lowered surface line for given layer thickness. + /// + /// The layer thickness. + /// public SurfaceLine CreateLoweredSurfaceLineForGivenLayerThickness(double layerThickness) { - const double diff = 1e-4; + const double tolerance = 1e-4; + const double horizontalOffset = 0.01; var loweredSurfaceLine = new SurfaceLine(); var dikeTopPolder = GetSurfaceLinePointByType(CharacteristicPointType.DikeTopAtPolder); var dikeToePolder = GetSurfaceLinePointByType(CharacteristicPointType.DikeToeAtPolder); foreach (var point in SurfaceLinePoints) { if (point.XCoordinate <= dikeTopPolder.XCoordinate) { - var newPointUpToDikeTop = new SurfaceLinePoint - { - XCoordinate = point.XCoordinate, - ZCoordinate = point.ZCoordinate, - PointType = point.PointType - }; - loweredSurfaceLine.SurfaceLinePoints.Add(newPointUpToDikeTop); - if (Math.Abs(point.XCoordinate - dikeTopPolder.XCoordinate) < diff) - { - var newPointAtDikeTop = new SurfaceLinePoint - { - XCoordinate = point.XCoordinate + 0.01, - ZCoordinate = point.ZCoordinate - layerThickness, - PointType = CharacteristicPointType.None - }; - loweredSurfaceLine.SurfaceLinePoints.Add(newPointAtDikeTop); - } + HandlePointsUpToAndIncludingDikeTopPolder(layerThickness, point, loweredSurfaceLine, dikeTopPolder, tolerance, horizontalOffset); } else { - if (point.XCoordinate > dikeTopPolder.XCoordinate && point.XCoordinate < dikeToePolder.XCoordinate) + // Handle all points between dike top polder and dike toe polder (taking into account the horizontal offset). + if (point.XCoordinate > dikeTopPolder.XCoordinate + horizontalOffset && point.XCoordinate < dikeToePolder.XCoordinate - horizontalOffset) { var newPointLowered = new SurfaceLinePoint { @@ -130,31 +121,59 @@ } else { - if (Math.Abs(point.XCoordinate - dikeToePolder.XCoordinate) < diff) - { - var newPointAtDikeToe = new SurfaceLinePoint - { - XCoordinate = point.XCoordinate - 0.01, - ZCoordinate = point.ZCoordinate - layerThickness, - PointType = CharacteristicPointType.None - }; - loweredSurfaceLine.SurfaceLinePoints.Add(newPointAtDikeToe); - - } - if (point.XCoordinate >= dikeToePolder.XCoordinate) - { - var newPointBeyondDikeToe = new SurfaceLinePoint - { - XCoordinate = point.XCoordinate, - ZCoordinate = point.ZCoordinate, - PointType = point.PointType - }; - loweredSurfaceLine.SurfaceLinePoints.Add(newPointBeyondDikeToe); - } + HandlePointsAtDikeToePolderAndBeyond(layerThickness, point, dikeToePolder, tolerance, horizontalOffset, loweredSurfaceLine); } } } return loweredSurfaceLine; } + + private static void HandlePointsAtDikeToePolderAndBeyond(double layerThickness, SurfaceLinePoint point, + SurfaceLinePoint dikeToePolder, double tolerance, double horizontalOffset, SurfaceLine loweredSurfaceLine) + { + if (Math.Abs(point.XCoordinate - dikeToePolder.XCoordinate) < tolerance) + { + var newPointAtDikeToe = new SurfaceLinePoint + { + XCoordinate = point.XCoordinate - horizontalOffset, + ZCoordinate = point.ZCoordinate - layerThickness, + PointType = CharacteristicPointType.None + }; + loweredSurfaceLine.SurfaceLinePoints.Add(newPointAtDikeToe); + } + + if (point.XCoordinate >= dikeToePolder.XCoordinate) + { + var newPointBeyondDikeToe = new SurfaceLinePoint + { + XCoordinate = point.XCoordinate, + ZCoordinate = point.ZCoordinate, + PointType = point.PointType + }; + loweredSurfaceLine.SurfaceLinePoints.Add(newPointBeyondDikeToe); + } + } + + private static void HandlePointsUpToAndIncludingDikeTopPolder(double layerThickness, SurfaceLinePoint point, + SurfaceLine loweredSurfaceLine, SurfaceLinePoint dikeTopPolder, double tolerance, double horizontalOffset) + { + var newPointUpToDikeTop = new SurfaceLinePoint + { + XCoordinate = point.XCoordinate, + ZCoordinate = point.ZCoordinate, + PointType = point.PointType + }; + loweredSurfaceLine.SurfaceLinePoints.Add(newPointUpToDikeTop); + if (Math.Abs(point.XCoordinate - dikeTopPolder.XCoordinate) < tolerance) + { + var newPointAtDikeTop = new SurfaceLinePoint + { + XCoordinate = point.XCoordinate + horizontalOffset, + ZCoordinate = point.ZCoordinate - layerThickness, + PointType = CharacteristicPointType.None + }; + loweredSurfaceLine.SurfaceLinePoints.Add(newPointAtDikeTop); + } + } } } \ No newline at end of file Index: DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Importer/CsvImporterCharacteristicPoints.cs =================================================================== diff -u -r3176 -r3184 --- DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Importer/CsvImporterCharacteristicPoints.cs (.../CsvImporterCharacteristicPoints.cs) (revision 3176) +++ DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Importer/CsvImporterCharacteristicPoints.cs (.../CsvImporterCharacteristicPoints.cs) (revision 3184) @@ -38,6 +38,9 @@ private readonly List characteristicPointsRecords = new List(); private readonly List errorMessages = new List(); + /// + /// Class holding definition for a CharacteristicPoint + /// public class CharPoint { public CharacteristicPointType Type { get; set; } @@ -46,6 +49,9 @@ public double Z { get; set; } } + /// + /// Class holding definition for a list of CharacteristicPoints and surface line id. + /// public class CharacteristicPointsRecord { private IList points = new List(); @@ -56,8 +62,6 @@ get { return points; } set { points = value; } } - - public int Volgnummer { get; set; } } private void CheckColumn(int index, string fileName, string fieldName) @@ -69,9 +73,18 @@ } } + /// + /// Initializes a new instance of the class. + /// + /// Name of the file. + /// + /// The file name for the Characteristic Points csv is empty. + /// or + /// or + /// public CsvImporterCharacteristicPoints(string fileName) { - const int minimalNumberOfColumns = 49; // Column 53 "volgnummer" is not mandatory; DTH removed + const int minimalNumberOfColumns = 49; // Column 53 "volgnummer" is now obsolete; DTH removed errorMessages.Clear(); if (fileName == "") { @@ -99,242 +112,241 @@ int surfaceLineIdCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.LocationId); if (surfaceLineIdCol < 0) { - // colIndexSurfaceLineId can be defined with 2 identifiers (surfaceLineId is deprecated, locationId is the new one) - surfaceLineIdCol = CsvReaderUtilities.GetHeaderIndexByString(headers, - CharacteristicPointCsvIdentifiers.SurfaceLineId); + // surfaceLineIdCol can be defined with 2 identifiers (surfaceLineId is deprecated, locationId is the new one) + surfaceLineIdCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.SurfaceLineId); } CheckColumn(surfaceLineIdCol, fileName, CharacteristicPointCsvIdentifiers.SurfaceLineId); - int xMaaiveldBinnenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, - CharacteristicPointCsvIdentifiers - .SurfaceLevelInsideX); - CheckColumn(xMaaiveldBinnenwaartsCol, fileName, - CharacteristicPointCsvIdentifiers.SurfaceLevelInsideX); + int xMaaiveldBinnenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.SurfaceLevelInsideX); + CheckColumn(xMaaiveldBinnenwaartsCol, fileName, CharacteristicPointCsvIdentifiers.SurfaceLevelInsideX); - int yMaaiveldBinnenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, - CharacteristicPointCsvIdentifiers - .SurfaceLevelInsideY); - CheckColumn(yMaaiveldBinnenwaartsCol, fileName, - CharacteristicPointCsvIdentifiers.SurfaceLevelInsideY); + int yMaaiveldBinnenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.SurfaceLevelInsideY); + CheckColumn(yMaaiveldBinnenwaartsCol, fileName, CharacteristicPointCsvIdentifiers.SurfaceLevelInsideY); - int zMaaiveldBinnenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, - CharacteristicPointCsvIdentifiers - .SurfaceLevelInsideZ); - CheckColumn(zMaaiveldBinnenwaartsCol, fileName, - CharacteristicPointCsvIdentifiers.SurfaceLevelInsideZ); + int zMaaiveldBinnenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.SurfaceLevelInsideZ); + CheckColumn(zMaaiveldBinnenwaartsCol, fileName, CharacteristicPointCsvIdentifiers.SurfaceLevelInsideZ); int xInsteekSlootPolderzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, - CharacteristicPointCsvIdentifiers - .DitchPolderSideX); - CheckColumn(xInsteekSlootPolderzijdeCol, fileName, - CharacteristicPointCsvIdentifiers.DitchPolderSideX); + CharacteristicPointCsvIdentifiers.DitchPolderSideX); + CheckColumn(xInsteekSlootPolderzijdeCol, fileName, CharacteristicPointCsvIdentifiers.DitchPolderSideX); - int yInsteekSlootPolderzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, - CharacteristicPointCsvIdentifiers - .DitchPolderSideY); - CheckColumn(yInsteekSlootPolderzijdeCol, fileName, - CharacteristicPointCsvIdentifiers.DitchPolderSideY); + int yInsteekSlootPolderzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.DitchPolderSideY); + CheckColumn(yInsteekSlootPolderzijdeCol, fileName, CharacteristicPointCsvIdentifiers.DitchPolderSideY); - int zInsteekSlootPolderzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, - CharacteristicPointCsvIdentifiers - .DitchPolderSideZ); - CheckColumn(zInsteekSlootPolderzijdeCol, fileName, - CharacteristicPointCsvIdentifiers.DitchPolderSideZ); + int zInsteekSlootPolderzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.DitchPolderSideZ); + CheckColumn(zInsteekSlootPolderzijdeCol, fileName, CharacteristicPointCsvIdentifiers.DitchPolderSideZ); - int xSlootbodemPolderzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, - CharacteristicPointCsvIdentifiers - .BottomDitchPolderSideX); - CheckColumn(xSlootbodemPolderzijdeCol, fileName, - CharacteristicPointCsvIdentifiers.BottomDitchPolderSideX); + int xSlootbodemPolderzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.BottomDitchPolderSideX); + CheckColumn(xSlootbodemPolderzijdeCol, fileName, CharacteristicPointCsvIdentifiers.BottomDitchPolderSideX); - int ySlootbodemPolderzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, - CharacteristicPointCsvIdentifiers - .BottomDitchPolderSideY); - CheckColumn(ySlootbodemPolderzijdeCol, fileName, - CharacteristicPointCsvIdentifiers.BottomDitchPolderSideY); + int ySlootbodemPolderzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.BottomDitchPolderSideY); + CheckColumn(ySlootbodemPolderzijdeCol, fileName, CharacteristicPointCsvIdentifiers.BottomDitchPolderSideY); - int zSlootbodemPolderzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, - CharacteristicPointCsvIdentifiers - .BottomDitchPolderSideZ); - CheckColumn(zSlootbodemPolderzijdeCol, fileName, - CharacteristicPointCsvIdentifiers.BottomDitchPolderSideZ); + int zSlootbodemPolderzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.BottomDitchPolderSideZ); + CheckColumn(zSlootbodemPolderzijdeCol, fileName, CharacteristicPointCsvIdentifiers.BottomDitchPolderSideZ); - int xSlootbodemDijkzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, - CharacteristicPointCsvIdentifiers - .BottomDitchDikeSideX); - CheckColumn(xSlootbodemDijkzijdeCol, fileName, - CharacteristicPointCsvIdentifiers.BottomDitchDikeSideX); + int xSlootbodemDijkzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.BottomDitchDikeSideX); + CheckColumn(xSlootbodemDijkzijdeCol, fileName, CharacteristicPointCsvIdentifiers.BottomDitchDikeSideX); int ySlootbodemDijkzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, - CharacteristicPointCsvIdentifiers - .BottomDitchDikeSideY); - CheckColumn(ySlootbodemDijkzijdeCol, fileName, - CharacteristicPointCsvIdentifiers.BottomDitchDikeSideY); + CharacteristicPointCsvIdentifiers.BottomDitchDikeSideY); + CheckColumn(ySlootbodemDijkzijdeCol, fileName, CharacteristicPointCsvIdentifiers.BottomDitchDikeSideY); int zSlootbodemDijkzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, - CharacteristicPointCsvIdentifiers - .BottomDitchDikeSideZ); - CheckColumn(zSlootbodemDijkzijdeCol, fileName, - CharacteristicPointCsvIdentifiers.BottomDitchDikeSideZ); + CharacteristicPointCsvIdentifiers.BottomDitchDikeSideZ); + CheckColumn(zSlootbodemDijkzijdeCol, fileName, CharacteristicPointCsvIdentifiers.BottomDitchDikeSideZ); - int xInsteekSlootDijkzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, - CharacteristicPointCsvIdentifiers - .DitchDikeSideX); + int xInsteekSlootDijkzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.DitchDikeSideX); CheckColumn(xInsteekSlootDijkzijdeCol, fileName, CharacteristicPointCsvIdentifiers.DitchDikeSideX); - int yInsteekSlootDijkzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, - CharacteristicPointCsvIdentifiers - .DitchDikeSideY); + int yInsteekSlootDijkzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.DitchDikeSideY); // The click program by Erik Vastenburg now delivers "Y_Insteek_sloot dijkzijde" instead of the correct above definition // Erik will change this in his program but for now, this wrong tag should also be recognized. if (yInsteekSlootDijkzijdeCol < 0) { const string fieldYInsteekslootdijkzijde = "Y_Insteek_sloot dijkzijde"; - yInsteekSlootDijkzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, - fieldYInsteekslootdijkzijde); + yInsteekSlootDijkzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, fieldYInsteekslootdijkzijde); CheckColumn(yInsteekSlootDijkzijdeCol, fileName, fieldYInsteekslootdijkzijde); } else { - CheckColumn(yInsteekSlootDijkzijdeCol, fileName, - CharacteristicPointCsvIdentifiers.DitchDikeSideY); + CheckColumn(yInsteekSlootDijkzijdeCol, fileName, CharacteristicPointCsvIdentifiers.DitchDikeSideY); } - int zInsteekSlootDijkzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.DitchDikeSideZ); + int zInsteekSlootDijkzijdeCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.DitchDikeSideZ); CheckColumn(zInsteekSlootDijkzijdeCol, fileName, CharacteristicPointCsvIdentifiers.DitchDikeSideZ); - int xTeenDijkBinnenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.DikeToeAtPolderX); + int xTeenDijkBinnenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.DikeToeAtPolderX); CheckColumn(xTeenDijkBinnenwaartsCol, fileName, CharacteristicPointCsvIdentifiers.DikeToeAtPolderX); - int yTeenDijkBinnenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.DikeToeAtPolderY); + int yTeenDijkBinnenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.DikeToeAtPolderY); CheckColumn(yTeenDijkBinnenwaartsCol, fileName, CharacteristicPointCsvIdentifiers.DikeToeAtPolderY); - int zTeenDijkBinnenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.DikeToeAtPolderZ); + int zTeenDijkBinnenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.DikeToeAtPolderZ); CheckColumn(zTeenDijkBinnenwaartsCol, fileName, CharacteristicPointCsvIdentifiers.DikeToeAtPolderZ); - int xKruinBinnenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.TopShoulderInsideX); + int xKruinBinnenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.TopShoulderInsideX); CheckColumn(xKruinBinnenbermCol, fileName, CharacteristicPointCsvIdentifiers.TopShoulderInsideX); - int yKruinBinnenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.TopShoulderInsideY); + int yKruinBinnenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.TopShoulderInsideY); CheckColumn(yKruinBinnenbermCol, fileName, CharacteristicPointCsvIdentifiers.TopShoulderInsideY); - int zKruinBinnenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.TopShoulderInsideZ); + int zKruinBinnenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.TopShoulderInsideZ); CheckColumn(zKruinBinnenbermCol, fileName, CharacteristicPointCsvIdentifiers.TopShoulderInsideZ); - int xInsteekBinnenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.InsteekShoulderInsideX); + int xInsteekBinnenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.InsteekShoulderInsideX); CheckColumn(xInsteekBinnenbermCol, fileName, CharacteristicPointCsvIdentifiers.InsteekShoulderInsideX); - int yInsteekBinnenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.InsteekShoulderInsideY); + int yInsteekBinnenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.InsteekShoulderInsideY); CheckColumn(yInsteekBinnenbermCol, fileName, CharacteristicPointCsvIdentifiers.InsteekShoulderInsideY); - int zInsteekBinnenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.InsteekShoulderInsideZ); + int zInsteekBinnenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.InsteekShoulderInsideZ); CheckColumn(zInsteekBinnenbermCol, fileName, CharacteristicPointCsvIdentifiers.InsteekShoulderInsideZ); - int xKruinBinnentaludCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.DikeTopAtPolderX); + int xKruinBinnentaludCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.DikeTopAtPolderX); CheckColumn(xKruinBinnentaludCol, fileName, CharacteristicPointCsvIdentifiers.DikeTopAtPolderX); - int yKruinBinnentaludCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.DikeTopAtPolderY); + int yKruinBinnentaludCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.DikeTopAtPolderY); CheckColumn(yKruinBinnentaludCol, fileName, CharacteristicPointCsvIdentifiers.DikeTopAtPolderY); - int zKruinBinnentaludCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.DikeTopAtPolderZ); + int zKruinBinnentaludCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.DikeTopAtPolderZ); CheckColumn(zKruinBinnentaludCol, fileName, CharacteristicPointCsvIdentifiers.DikeTopAtPolderZ); - int xVerkeersbelastingKantBinnenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.TrafficLoadInsideX); + int xVerkeersbelastingKantBinnenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.TrafficLoadInsideX); CheckColumn(xVerkeersbelastingKantBinnenwaartsCol, fileName, CharacteristicPointCsvIdentifiers.TrafficLoadInsideX); - int yVerkeersbelastingKantBinnenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.TrafficLoadInsideY); - CheckColumn(yVerkeersbelastingKantBinnenwaartsCol, fileName, - CharacteristicPointCsvIdentifiers.TrafficLoadInsideY); + int yVerkeersbelastingKantBinnenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.TrafficLoadInsideY); + CheckColumn(yVerkeersbelastingKantBinnenwaartsCol, fileName, CharacteristicPointCsvIdentifiers.TrafficLoadInsideY); - int zVerkeersbelastingKantBinnenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.TrafficLoadInsideZ); + int zVerkeersbelastingKantBinnenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.TrafficLoadInsideZ); CheckColumn(zVerkeersbelastingKantBinnenwaartsCol, fileName, CharacteristicPointCsvIdentifiers.TrafficLoadInsideZ); - int xVerkeersbelastingKantBuitenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.TrafficLoadOutsideX); + int xVerkeersbelastingKantBuitenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.TrafficLoadOutsideX); CheckColumn(xVerkeersbelastingKantBuitenwaartsCol, fileName, CharacteristicPointCsvIdentifiers.TrafficLoadOutsideX); - int yVerkeersbelastingKantBuitenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.TrafficLoadOutsideY); + int yVerkeersbelastingKantBuitenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.TrafficLoadOutsideY); CheckColumn(yVerkeersbelastingKantBuitenwaartsCol, fileName, CharacteristicPointCsvIdentifiers.TrafficLoadOutsideY); - int zVerkeersbelastingKantBuitenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.TrafficLoadOutsideZ); + int zVerkeersbelastingKantBuitenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.TrafficLoadOutsideZ); CheckColumn(zVerkeersbelastingKantBuitenwaartsCol, fileName, CharacteristicPointCsvIdentifiers.TrafficLoadOutsideZ); - int xKruinBuitentaludCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.DikeTopAtRiverX); + int xKruinBuitentaludCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.DikeTopAtRiverX); CheckColumn(xKruinBuitentaludCol, fileName, CharacteristicPointCsvIdentifiers.DikeTopAtRiverX); - int yKruinBuitentaludCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.DikeTopAtRiverY); + int yKruinBuitentaludCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.DikeTopAtRiverY); CheckColumn(yKruinBuitentaludCol, fileName, CharacteristicPointCsvIdentifiers.DikeTopAtRiverY); - int zKruinBuitentaludCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.DikeTopAtRiverZ); + int zKruinBuitentaludCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.DikeTopAtRiverZ); CheckColumn(zKruinBuitentaludCol, fileName, CharacteristicPointCsvIdentifiers.DikeTopAtRiverZ); - int xInsteekBuitenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.InsteekShoulderOutsideX); + int xInsteekBuitenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.InsteekShoulderOutsideX); CheckColumn(xInsteekBuitenbermCol, fileName, CharacteristicPointCsvIdentifiers.InsteekShoulderOutsideX); - int yInsteekBuitenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.InsteekShoulderOutsideY); + int yInsteekBuitenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.InsteekShoulderOutsideY); CheckColumn(yInsteekBuitenbermCol, fileName, CharacteristicPointCsvIdentifiers.InsteekShoulderOutsideY); - int zInsteekBuitenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.InsteekShoulderOutsideZ); + int zInsteekBuitenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.InsteekShoulderOutsideZ); CheckColumn(zInsteekBuitenbermCol, fileName, CharacteristicPointCsvIdentifiers.InsteekShoulderOutsideZ); - int xKruinBuitenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.TopShoulderOutsideX); + int xKruinBuitenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.TopShoulderOutsideX); CheckColumn(xKruinBuitenbermCol, fileName, CharacteristicPointCsvIdentifiers.TopShoulderOutsideX); - int yKruinBuitenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.TopShoulderOutsideY); + int yKruinBuitenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.TopShoulderOutsideY); CheckColumn(yKruinBuitenbermCol, fileName, CharacteristicPointCsvIdentifiers.TopShoulderOutsideY); - int zKruinBuitenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.TopShoulderOutsideZ); + int zKruinBuitenbermCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.TopShoulderOutsideZ); CheckColumn(zKruinBuitenbermCol, fileName, CharacteristicPointCsvIdentifiers.TopShoulderOutsideZ); - int xTeenDijkBuitenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.DikeToeAtRiverX); + int xTeenDijkBuitenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.DikeToeAtRiverX); CheckColumn(xTeenDijkBuitenwaartsCol, fileName, CharacteristicPointCsvIdentifiers.DikeToeAtRiverX); - int yTeenDijkBuitenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.DikeToeAtRiverY); + int yTeenDijkBuitenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.DikeToeAtRiverY); CheckColumn(yTeenDijkBuitenwaartsCol, fileName, CharacteristicPointCsvIdentifiers.DikeToeAtRiverY); - int zTeenDijkBuitenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.DikeToeAtRiverZ); + int zTeenDijkBuitenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.DikeToeAtRiverZ); CheckColumn(zTeenDijkBuitenwaartsCol, fileName, CharacteristicPointCsvIdentifiers.DikeToeAtRiverZ); - int xMaaiveldBuitenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.SurfaceLevelOutsideX); - CheckColumn(xMaaiveldBuitenwaartsCol, fileName, - CharacteristicPointCsvIdentifiers.SurfaceLevelOutsideX); + int xMaaiveldBuitenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.SurfaceLevelOutsideX); + CheckColumn(xMaaiveldBuitenwaartsCol, fileName, CharacteristicPointCsvIdentifiers.SurfaceLevelOutsideX); - int yMaaiveldBuitenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.SurfaceLevelOutsideY); - CheckColumn(yMaaiveldBuitenwaartsCol, fileName, - CharacteristicPointCsvIdentifiers.SurfaceLevelOutsideY); + int yMaaiveldBuitenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.SurfaceLevelOutsideY); + CheckColumn(yMaaiveldBuitenwaartsCol, fileName, CharacteristicPointCsvIdentifiers.SurfaceLevelOutsideY); - int zMaaiveldBuitenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.SurfaceLevelOutsideZ); + int zMaaiveldBuitenwaartsCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.SurfaceLevelOutsideZ); CheckColumn(zMaaiveldBuitenwaartsCol, fileName, CharacteristicPointCsvIdentifiers.SurfaceLevelOutsideZ); //optional, do not check - int xInsteekGeulCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.InsertRiverChannelX); + int xInsteekGeulCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.InsertRiverChannelX); //optional, do not check - int yInsteekGeulCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.InsertRiverChannelY); + int yInsteekGeulCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.InsertRiverChannelY); //optional, do not check - int zInsteekGeulCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.InsertRiverChannelZ); + int zInsteekGeulCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.InsertRiverChannelZ); //optional, do not check - int xTeenGeulCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.BottomRiverChannelX); + int xTeenGeulCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.BottomRiverChannelX); //optional, do not check - int yTeenGeulCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.BottomRiverChannelY); + int yTeenGeulCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.BottomRiverChannelY); //optional, do not check - int zTeenGeulCol = CsvReaderUtilities.GetHeaderIndexByString(headers, CharacteristicPointCsvIdentifiers.BottomRiverChannelZ); + int zTeenGeulCol = CsvReaderUtilities.GetHeaderIndexByString(headers, + CharacteristicPointCsvIdentifiers.BottomRiverChannelZ); - // optional so do not check - const string fieldVolgnummer = "Volgnummer"; - int volgnummerCol = CsvReaderUtilities.GetHeaderIndexByString(headers, fieldVolgnummer); - - while (csv.ReadNextRecord()) { try { CharacteristicPointsRecord characteristicPoints = new CharacteristicPointsRecord(); characteristicPoints.SurfaceLineId = csv[surfaceLineIdCol]; - if (volgnummerCol > -1) - { - characteristicPoints.Volgnummer = Convert.ToInt32(csv[volgnummerCol]); - } - + CharPoint mbi = new CharPoint(); mbi.Type = CharacteristicPointType.SurfaceLevelInside; mbi.X = Convert.ToDouble(csv[xMaaiveldBinnenwaartsCol]); Index: DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.ImporterTests/CsvImportersTests.cs =================================================================== diff -u -r3159 -r3184 --- DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.ImporterTests/CsvImportersTests.cs (.../CsvImportersTests.cs) (revision 3159) +++ DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.ImporterTests/CsvImportersTests.cs (.../CsvImportersTests.cs) (revision 3184) @@ -461,8 +461,7 @@ private static void CheckCharacteristicPoints(IList characteristicPointsRecords) { Assert.AreEqual("D1", characteristicPointsRecords[0].SurfaceLineId); - Assert.AreEqual(1, characteristicPointsRecords[0].Volgnummer); - + Assert.AreEqual(117.94, characteristicPointsRecords[0].Points[0].X); Assert.AreEqual(0, characteristicPointsRecords[0].Points[0].Y); Assert.AreEqual(0.12, characteristicPointsRecords[0].Points[0].Z);