diff --git a/ClassLibrary1/Class1.cs b/ClassLibrary1/Class1.cs
new file mode 100644
index 0000000000000000000000000000000000000000..4d41fc787ece3815d0d30d2add2c12dfcd7fce9a
--- /dev/null
+++ b/ClassLibrary1/Class1.cs
@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace ClassLibrary1
+{
+ public class Class1
+ {
+ }
+}
diff --git a/ClassLibrary1/ClassLibrary1.csproj b/ClassLibrary1/ClassLibrary1.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..641a600f52e1d547c4b1a2780c97b67d33f24730
--- /dev/null
+++ b/ClassLibrary1/ClassLibrary1.csproj
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>8.0.30703</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{CB94E8FC-2BCD-4115-9CF0-CF1DC028BFF4}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>ClassLibrary1</RootNamespace>
+ <AssemblyName>ClassLibrary1</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Class1.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
\ No newline at end of file
diff --git a/ClassLibrary1/Properties/AssemblyInfo.cs b/ClassLibrary1/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000000000000000000000000000000000..ec7421af3d57dfc35bc13377487676af4cfac0e0
--- /dev/null
+++ b/ClassLibrary1/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Управление общими сведениями о сборке осуществляется с помощью
+// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения,
+// связанные со сборкой.
+[assembly: AssemblyTitle("ClassLibrary1")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ClassLibrary1")]
+[assembly: AssemblyCopyright("Copyright © 2016")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Параметр ComVisible со значением FALSE делает типы в сборке невидимыми
+// для COM-компонентов. Если требуется обратиться к типу в этой сборке через
+// COM, задайте атрибуту ComVisible значение TRUE для этого типа.
+[assembly: ComVisible(false)]
+
+// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
+[assembly: Guid("4648c999-b08c-40ac-bc08-4118f810bbe5")]
+
+// Сведения о версии сборки состоят из следующих четырех значений:
+//
+// Основной номер версии
+// Дополнительный номер версии
+// Номер построения
+// Редакция
+//
+// Можно задать все значения или принять номер построения и номер редакции по умолчанию,
+// используя "*", как показано ниже:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/ClassLibrary1/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/ClassLibrary1/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000000000000000000000000000000000000..d34001c35816722e14be36cae09e2fa1f16df975
Binary files /dev/null and b/ClassLibrary1/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/MES_Wind.sln b/MES_Wind.sln
index 4b5b5d8028083fefd773b6948d1280d59c2fb654..411c4638ff2b6b676979136975266046e9e1c1d3 100644
--- a/MES_Wind.sln
+++ b/MES_Wind.sln
@@ -2,9 +2,14 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MES_Wind", "MES_Wind\MES_Wind.csproj", "{A303A9F5-8181-46B5-876C-D1BC99C3FFFD}"
+ ProjectSection(ProjectDependencies) = postProject
+ {599B5E9B-293A-4866-A50F-6BB7DC36A81C} = {599B5E9B-293A-4866-A50F-6BB7DC36A81C}
+ EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{3BFCE63D-6DC2-4DC4-AAB9-72ECF2AC2EB5}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PRMLibrary", "PRMLibrary\PRMLibrary.csproj", "{599B5E9B-293A-4866-A50F-6BB7DC36A81C}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -15,8 +20,15 @@ Global
{A303A9F5-8181-46B5-876C-D1BC99C3FFFD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A303A9F5-8181-46B5-876C-D1BC99C3FFFD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A303A9F5-8181-46B5-876C-D1BC99C3FFFD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {599B5E9B-293A-4866-A50F-6BB7DC36A81C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {599B5E9B-293A-4866-A50F-6BB7DC36A81C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {599B5E9B-293A-4866-A50F-6BB7DC36A81C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {599B5E9B-293A-4866-A50F-6BB7DC36A81C}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {599B5E9B-293A-4866-A50F-6BB7DC36A81C} = {3BFCE63D-6DC2-4DC4-AAB9-72ECF2AC2EB5}
+ EndGlobalSection
EndGlobal
diff --git a/MES_Wind.suo b/MES_Wind.suo
index 963ad17b0195b271a5473314469fe0a4f425d36b..75cc2721ac11130d32cc7585eb74f56338631cb5 100644
Binary files a/MES_Wind.suo and b/MES_Wind.suo differ
diff --git a/MES_Wind/MES_Wind.csproj b/MES_Wind/MES_Wind.csproj
index a5ce0cb1ad02c42c75157ac2b90cfd2f78a1142d..6dcf6610abaf9728abb86b648cc5ca7be92112ec 100644
--- a/MES_Wind/MES_Wind.csproj
+++ b/MES_Wind/MES_Wind.csproj
@@ -111,7 +111,6 @@
<Compile Include="frmMain.Designer.cs">
<DependentUpon>frmMain.cs</DependentUpon>
</Compile>
- <Compile Include="PRM_wind.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="frmGraph.resx">
@@ -140,6 +139,12 @@
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\PRMLibrary\PRMLibrary.csproj">
+ <Project>{599B5E9B-293A-4866-A50F-6BB7DC36A81C}</Project>
+ <Name>PRMLibrary</Name>
+ </ProjectReference>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/MES_Wind/bin/Debug/MES_Wind.exe b/MES_Wind/bin/Debug/MES_Wind.exe
index e1e304d166e070462234a78bc400d3c20612af1d..a7963400861fbafd40af881b92908575887349d0 100644
Binary files a/MES_Wind/bin/Debug/MES_Wind.exe and b/MES_Wind/bin/Debug/MES_Wind.exe differ
diff --git a/MES_Wind/bin/Debug/MES_Wind.pdb b/MES_Wind/bin/Debug/MES_Wind.pdb
index 7da2754ece99210fdfa36277afacc654f932c8d8..4e07adf3b75636e0e087d217152c977a1006674e 100644
Binary files a/MES_Wind/bin/Debug/MES_Wind.pdb and b/MES_Wind/bin/Debug/MES_Wind.pdb differ
diff --git a/MES_Wind/bin/Debug/MES_Wind.vshost.exe b/MES_Wind/bin/Debug/MES_Wind.vshost.exe
index 8f90da475a8319aa76856e089ccc9e517eeb134a..6b241bcd65a4769673693b96129ef13ae25e17ec 100644
Binary files a/MES_Wind/bin/Debug/MES_Wind.vshost.exe and b/MES_Wind/bin/Debug/MES_Wind.vshost.exe differ
diff --git a/MES_Wind/bin/Debug/MES_Wind.vshost.exe.manifest b/MES_Wind/bin/Debug/MES_Wind.vshost.exe.manifest
deleted file mode 100644
index 061c9ca950d0e8bb952c52799fb401a6614ad640..0000000000000000000000000000000000000000
--- a/MES_Wind/bin/Debug/MES_Wind.vshost.exe.manifest
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
- <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
- <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
- <security>
- <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
- <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
- </requestedPrivileges>
- </security>
- </trustInfo>
-</assembly>
diff --git a/MES_Wind/bin/Debug/PRMLibrary.dll b/MES_Wind/bin/Debug/PRMLibrary.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b38bcda0e7828ef5fbfeb94416c65af3dd8a0042
Binary files /dev/null and b/MES_Wind/bin/Debug/PRMLibrary.dll differ
diff --git a/MES_Wind/bin/Debug/PRMLibrary.pdb b/MES_Wind/bin/Debug/PRMLibrary.pdb
new file mode 100644
index 0000000000000000000000000000000000000000..33166b797f14ccbed1edfb7667d1b71dc292d0a8
Binary files /dev/null and b/MES_Wind/bin/Debug/PRMLibrary.pdb differ
diff --git a/MES_Wind/frmMain.cs b/MES_Wind/frmMain.cs
index 740490ec6ef605d4fb3e5ec074addbcb1ec4a503..d7e7aeaa05a146eb09122c97526d809c92380eb0 100644
--- a/MES_Wind/frmMain.cs
+++ b/MES_Wind/frmMain.cs
@@ -12,15 +12,11 @@ using DotSpatial.Topology;
using DotSpatial.Serialization;
using DotSpatial.Data;
using DotSpatial.Symbology;
-using MES_Wind_prm;
-
-
namespace MES_Wind
{
public partial class frmMain : Form
{
-
[Export("Shell", typeof(ContainerControl))]
private static ContainerControl Shell;
#region "Control variables"
@@ -51,20 +47,20 @@ namespace MES_Wind
/// <returns>List of booleans with coordinates if any of them are true, line is broken</returns>
/// <remarks></remarks>
#endregion
- List<PRM_coordinate> DotspLinestringToPrm(LineString dtlinestr)
+ List<PRMLibrary.Coordinate> DotspLinestringToPrm(LineString dtlinestr)
{
- List<PRM_coordinate> prmlinestring = new List<PRM_coordinate>();
+ List<PRMLibrary.Coordinate> prmlinestring = new List<PRMLibrary.Coordinate>();
IList<Coordinate> linepoints = dtlinestr.Coordinates;
foreach(Coordinate linepoint in linepoints)
{
- PRM_coordinate point = new PRM_coordinate(linepoint.X,linepoint.Y);
+ PRMLibrary.Coordinate point = new PRMLibrary.Coordinate(linepoint.X, linepoint.Y);
prmlinestring.Add(point);
}
return prmlinestring;
}
- PRM_coordinate DotspPointToPRM(IPoint ftpoint)
+ PRMLibrary.Coordinate DotspPointToPRM(IPoint ftpoint)
{
- PRM_coordinate prpoint = new PRM_coordinate();
+ PRMLibrary.Coordinate prpoint = new PRMLibrary.Coordinate();
prpoint.X = ftpoint.X;
prpoint.Y = ftpoint.Y;
return prpoint;
@@ -397,19 +393,18 @@ namespace MES_Wind
IFeatureSet pwpointsSet = pwstLayer.DataSet;
//Start to cast raster to PRM classes
// prognostic wind massives first
- List<List<PRM_raster_cell_prognostic>> prog_wind= new List<List<PRM_raster_cell_prognostic>>();
-
- PRM_coordinate dummy_coord = new PRM_coordinate();
+ List<List<PRMLibrary.PrognosticCell>> prog_wind = new List<List<PRMLibrary.PrognosticCell>>();
+
+ PRMLibrary.Coordinate dummy_coord = new PRMLibrary.Coordinate();
Coordinate dummy_rcoord = new Coordinate();
- PRM_raster_cell_prognostic dummy_prognostic = new PRM_raster_cell_prognostic(dummy_coord,0,0);
+ PRMLibrary.PrognosticCell dummy_prognostic = new PRMLibrary.PrognosticCell(dummy_coord, 0, 0);
int rcount_prog = u_rasterLayer.DataSet.NumRows;
int ccount_prog = u_rasterLayer.DataSet.NumColumns;
for (int i =0; i< ccount_prog; i++)
{
- List<PRM_raster_cell_prognostic> prog_wind_row = new List<PRM_raster_cell_prognostic>();
+ List<PRMLibrary.PrognosticCell> prog_wind_row = new List<PRMLibrary.PrognosticCell>();
for (int j =0; j< rcount_prog; j++ )
{
-
dummy_prognostic.velocityX = u_rasterLayer.DataSet.Value[j, i];
dummy_prognostic.velocityY = v_rasterLayer.DataSet.Value[j, i];
dummy_rcoord = u_rasterLayer.Bounds.CellCenter_ToProj(j,i);
@@ -422,16 +417,16 @@ namespace MES_Wind
//prog_wind_row.Clear();
}
//Get cell info and Affine transform coefficients from prognostic wind rasters
- PRM_cell_size prog_cell = new PRM_cell_size(u_rasterLayer.DataSet.CellWidth, u_rasterLayer.DataSet.CellHeight);
+ PRMLibrary.CellSize prog_cell = new PRMLibrary.CellSize(u_rasterLayer.DataSet.CellWidth, u_rasterLayer.DataSet.CellHeight);
double[] prog_aff = u_rasterLayer.Bounds.AffineCoefficients;
//Now we create climate raster class
- List<List<PRM_raster_cell_climate>> clim_wind = new List<List<PRM_raster_cell_climate>>();
- PRM_raster_cell_climate dummy_clim = new PRM_raster_cell_climate(dummy_coord, 0, 0, 0);
+ List<List<PRMLibrary.ClimateCell>> clim_wind = new List<List<PRMLibrary.ClimateCell>>();
+ PRMLibrary.ClimateCell dummy_clim = new PRMLibrary.ClimateCell(dummy_coord, 0, 0, 0);
int rcount_clim = clim5_rasterLayer.DataSet.NumRows;
int ccount_clim = clim5_rasterLayer.DataSet.NumColumns;
for (int i = 0; i < ccount_clim; i++)
{
- List<PRM_raster_cell_climate> clim_wind_row = new List<PRM_raster_cell_climate>();
+ List<PRMLibrary.ClimateCell> clim_wind_row = new List<PRMLibrary.ClimateCell>();
for (int j = 0; j < rcount_clim; j++)
{
dummy_clim.wind5 = clim5_rasterLayer.DataSet.Value[j, i];
@@ -447,13 +442,13 @@ namespace MES_Wind
//clim_wind_row.Clear();
}
//Get cell info and affine transform coeff from climate rasters
- PRM_cell_size clim_cell = new PRM_cell_size(clim5_rasterLayer.DataSet.CellWidth, clim5_rasterLayer.DataSet.CellHeight);
+ PRMLibrary.CellSize clim_cell = new PRMLibrary.CellSize(clim5_rasterLayer.DataSet.CellWidth, clim5_rasterLayer.DataSet.CellHeight);
double[] clim_aff = clim5_rasterLayer.Bounds.AffineCoefficients;
// create PRM_line list to pass to PRM_wind from loaded line layer
- List<PRM_Line> powerlinesToPRM = new List<PRM_Line>();
+ List<PRMLibrary.Powerline> powerlinesToPRM = new List<PRMLibrary.Powerline>();
foreach (IFeature feature in pwlineSet.Features)
{
- PRM_Line dummyline = new PRM_Line();
+ PRMLibrary.Powerline dummyline = new PRMLibrary.Powerline();
DataRow featureData = feature.DataRow;
dummyline.identifier = feature.Fid;
dummyline.year = int.Parse(featureData["Year"].ToString());
@@ -466,10 +461,10 @@ namespace MES_Wind
powerlinesToPRM.Add(dummyline);
}
//create PRM_station list to pass to PRM_wind from loaded point layer
- List<PRM_Station> powerpointsToPRM = new List<PRM_Station>();
+ List<PRMLibrary.PowerStation> powerpointsToPRM = new List<PRMLibrary.PowerStation>();
foreach (IFeature ftpoint in pwpointsSet.Features)
{
- PRM_Station dummystation = new PRM_Station();
+ PRMLibrary.PowerStation dummystation = new PRMLibrary.PowerStation();
DataRow featureData = ftpoint.DataRow;
dummystation.identifier = ftpoint.Fid;
dummystation.name = featureData["Name"].ToString();
@@ -497,20 +492,18 @@ namespace MES_Wind
}
//Create a PRM_wind class and add all the properties from above
- PRM_wind prmwind = new PRM_wind();
- prmwind.powerlines = powerlinesToPRM;
- prmwind.powerstations = powerpointsToPRM;
- prmwind.prognostic_cells = prog_wind;
- prmwind.prognostic_cellsize = prog_cell;
- prmwind.prognostic_AffineCoefficients = prog_aff;
- prmwind.climate_cells = clim_wind;
- prmwind.climate_cellsize = clim_cell;
- prmwind.climate_AffineCoefficients = clim_aff;
+ PRMLibrary.Module prmwind = new PRMLibrary.Module();
+ prmwind.powerLines = powerlinesToPRM;
+ prmwind.powerStations = powerpointsToPRM;
+ prmwind.prognosticCells = prog_wind;
+ prmwind.prognosticCellSize = prog_cell;
+ prmwind.prognosticAffineCoefficients = prog_aff;
+ prmwind.climateCells = clim_wind;
+ prmwind.climateCellSize = clim_cell;
+ prmwind.climateAffineCoefficients = clim_aff;
//Calculate which lines are broken
- List<PRM_Line> prmBrokenLines = prmwind.brokenPowerLinesAfterCheck();
- prmwind.mainpowercheck();
-
-
+ List<PRMLibrary.Powerline> prmBrokenLines = prmwind.brokenPowerLinesAfterCheck();
+ prmwind.checkPower();
// new FeatureSet for resulting broken powerlines
//IFeatureSet brklineSet = new FeatureSet(FeatureType.Line);
//DataTable dt = pwlineSet.DataTable;
diff --git a/MES_Wind/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/MES_Wind/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
index 15af49b1dfb60189d9d6571b791bd6be84bdd821..4893b6d7a46dd648e1e820a13e7fa977bfde9239 100644
Binary files a/MES_Wind/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/MES_Wind/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/MES_Wind/obj/Debug/MES_Wind.csproj.FileListAbsolute.txt b/MES_Wind/obj/Debug/MES_Wind.csproj.FileListAbsolute.txt
index 8a59effe28ee788161d819f34c3b802b85b6051a..cf9c8deb6cd874db2b2182b415615dba9e34e05c 100644
--- a/MES_Wind/obj/Debug/MES_Wind.csproj.FileListAbsolute.txt
+++ b/MES_Wind/obj/Debug/MES_Wind.csproj.FileListAbsolute.txt
@@ -215,3 +215,5 @@ C:\gitlab_wind\MES_Wind\obj\Debug\MES_Wind.frmGraph.resources
C:\gitlab_wind\MES_Wind\obj\Debug\MES_Wind.frmMain.resources
C:\gitlab_wind\MES_Wind\obj\Debug\MES_Wind.Properties.Resources.resources
C:\gitlab_wind\MES_Wind\obj\Debug\MES_Wind.csproj.GenerateResource.Cache
+C:\Users\Geophyslab-laptop\Documents\MES_Wind2\MES_Wind\bin\Debug\PRMLibrary.dll
+C:\Users\Geophyslab-laptop\Documents\MES_Wind2\MES_Wind\bin\Debug\PRMLibrary.pdb
diff --git a/MES_Wind/obj/Debug/MES_Wind.csproj.GenerateResource.Cache b/MES_Wind/obj/Debug/MES_Wind.csproj.GenerateResource.Cache
index c68480ca80cf3ae607999374b8a3ce6d1d4fe5c1..3f373bbace73c90f3ad31154deb02bff74781c87 100644
Binary files a/MES_Wind/obj/Debug/MES_Wind.csproj.GenerateResource.Cache and b/MES_Wind/obj/Debug/MES_Wind.csproj.GenerateResource.Cache differ
diff --git a/MES_Wind/obj/Debug/MES_Wind.csprojResolveAssemblyReference.cache b/MES_Wind/obj/Debug/MES_Wind.csprojResolveAssemblyReference.cache
index 1d0fb07dceec79f9379efd70c284457e0cda4277..92ad0c0ca9d7e6ef05d216e0c4b3a16b1cc71476 100644
Binary files a/MES_Wind/obj/Debug/MES_Wind.csprojResolveAssemblyReference.cache and b/MES_Wind/obj/Debug/MES_Wind.csprojResolveAssemblyReference.cache differ
diff --git a/MES_Wind/obj/Debug/MES_Wind.exe b/MES_Wind/obj/Debug/MES_Wind.exe
index e1e304d166e070462234a78bc400d3c20612af1d..a7963400861fbafd40af881b92908575887349d0 100644
Binary files a/MES_Wind/obj/Debug/MES_Wind.exe and b/MES_Wind/obj/Debug/MES_Wind.exe differ
diff --git a/MES_Wind/obj/Debug/MES_Wind.pdb b/MES_Wind/obj/Debug/MES_Wind.pdb
index 7da2754ece99210fdfa36277afacc654f932c8d8..4e07adf3b75636e0e087d217152c977a1006674e 100644
Binary files a/MES_Wind/obj/Debug/MES_Wind.pdb and b/MES_Wind/obj/Debug/MES_Wind.pdb differ
diff --git a/MES_Wind/PRM_wind.cs b/PRMLibrary/PRMLibrary.cs
similarity index 54%
rename from MES_Wind/PRM_wind.cs
rename to PRMLibrary/PRMLibrary.cs
index 9fd17e205b50a8dc4b579c3d95f8db75175460e3..aebeb3ea991bf9754faa02dbd3e15af2b3f51625 100644
--- a/MES_Wind/PRM_wind.cs
+++ b/PRMLibrary/PRMLibrary.cs
@@ -2,53 +2,52 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
-using System.Windows.Forms;
-namespace MES_Wind_prm
+namespace PRMLibrary
{
- public class PRM_index
+ public class Index
{
public int Row;
public int Col;
- public PRM_index(int Row, int Col)
+ public Index(int Row, int Col)
{
this.Row = Row;
this.Col = Col;
}
- public PRM_index() : this(0, 0) { }
+ public Index() : this(0, 0) { }
}
- public class PRM_coordinate
+ public class Coordinate
{
public double X;
public double Y;
-
- public PRM_coordinate(double X, double Y)
+
+ public Coordinate(double X, double Y)
{
this.X = X;
this.Y = Y;
}
- public PRM_coordinate() : this(0, 0) { }
+ public Coordinate() : this(0, 0) { }
}
- public class PRM_raster_cell_prognostic
+ public class PrognosticCell
{
public double velocityX;
public double velocityY;
- public PRM_coordinate coords;
- public PRM_raster_cell_prognostic(PRM_coordinate coord, double vX, double vY)
+ public Coordinate coords;
+ public PrognosticCell(Coordinate coord, double vX, double vY)
{
this.coords = coord;
this.velocityX = vX;
this.velocityY = vY;
}
}
- public class PRM_raster_cell_climate
+ public class ClimateCell
{
public double wind5;
public double wind10;
public double wind15;
- public PRM_coordinate coords;
+ public Coordinate coords;
- public PRM_raster_cell_climate(PRM_coordinate coord, double w5, double w10, double w15)
+ public ClimateCell(Coordinate coord, double w5, double w10, double w15)
{
this.coords = coord;
this.wind5 = w5;
@@ -56,31 +55,31 @@ namespace MES_Wind_prm
this.wind15 = w15;
}
}
- public struct PRM_cell_size
+ public struct CellSize
{
public double width;
public double height;
-
- public PRM_cell_size(double wdh, double hgh)
+
+ public CellSize(double wdh, double hgh)
{
- this.width = wdh;
+ this.width = wdh;
this.height = hgh;
}
}
- public class PRM_Line
+ public class Powerline
{
public int identifier { get; set; }
public int year;
public double height;
public int power;
- public List<PRM_coordinate> coords { get; set; }
+ public List<Coordinate> coords { get; set; }
public int pointFromID;
public int pointToID;
public bool isbroken;
public bool ison;
- public PRM_Line(List<PRM_coordinate> coord, int id, int yer, double h, int pw, bool isbrkn, bool ison, int toID, int fromID)
+ public Powerline(List<Coordinate> coord, int id, int yer, double h, int pw, bool isbrkn, bool ison, int toID, int fromID)
{
this.coords = coord;
this.identifier = id;
@@ -92,19 +91,19 @@ namespace MES_Wind_prm
this.pointFromID = fromID;
this.pointToID = toID;
}
- public PRM_Line() : base() { }
+ public Powerline() : base() { }
}
- public class PRM_Station
+ public class PowerStation
{
public int identifier;
- public PRM_coordinate coords;
+ public Coordinate coords;
public string name;
public int power;
public string type;
public bool issource;
public bool ison;
- public List<PRM_Line> linelist;
- public PRM_Station(PRM_coordinate crds, int id,string stname, int stpower, string sttype, bool issource, bool ison)
+ public List<Powerline> linelist;
+ public PowerStation(Coordinate crds, int id, string stname, int stpower, string sttype, bool issource, bool ison)
{
this.coords = crds;
this.identifier = id;
@@ -114,148 +113,149 @@ namespace MES_Wind_prm
this.issource = issource;
this.ison = ison;
}
- public PRM_Station() : base() { }
-
+ public PowerStation() : base() { }
}
- enum PRMFunctionType
- {
- PRMFunctionVelocityX = 0,
- PRMFunctionVelocityY = 1,
- PRMFunctionClimate5 = 2,
- PRMFunctionClimate10 = 3,
- PRMFunctionClimate15 = 4
+ enum FunctionType
+ {
+ FunctionVelocityX = 0,
+ FunctionVelocityY = 1,
+ FunctionClimate5 = 2,
+ FunctionClimate10 = 3,
+ FunctionClimate15 = 4
}
- public class PRM_wind
+ public class Module
{
//prognistic raster info
- public List<List<PRM_raster_cell_prognostic>> prognostic_cells;
- public PRM_cell_size prognostic_cellsize;
- public double[] prognostic_AffineCoefficients;
+ public List<List<PrognosticCell>> prognosticCells;
+ public CellSize prognosticCellSize;
+ public double[] prognosticAffineCoefficients;
//climate raster info
- public List<List<PRM_raster_cell_climate>> climate_cells;
- public PRM_cell_size climate_cellsize;
- public double[] climate_AffineCoefficients;
+ public List<List<ClimateCell>> climateCells;
+ public CellSize climateCellSize;
+ public double[] climateAffineCoefficients;
//lines collection
- public List<PRM_Line> powerlines;
+ public List<Powerline> powerLines;
//station collection
- public List<PRM_Station> powerstations;
+ public List<PowerStation> powerStations;
//broken stations and lines
- public List<PRM_Station> disabledstations = new List<PRM_Station>();
- public List<PRM_Line> disabledlines = new List<PRM_Line>();
- #region "control parameters"
- public double dist_threshold=500;
- #endregion
+ public List<PowerStation> disabledStations = new List<PowerStation>();
+ public List<Powerline> disabledLines = new List<Powerline>();
+
+ public double dist_threshold = 500;
//Main function for power graph algorithm
- public void mainpowercheck()
+ public void checkPower()
{
//get the graph
- Powerprep();
+ PreparingPowerItems();
//start from source points
- foreach (PRM_Station pwstation in powerstations)
+ foreach (PowerStation pwstation in powerStations)
{
- if (pwstation.issource) { Chekpwpoints(pwstation); }
+ if (pwstation.issource) {
+ CheckPowerPointsForStation(pwstation);
+ }
}
- foreach (PRM_Line lin in powerlines)
+ foreach (Powerline line in powerLines)
{
- if (lin.isbroken) { disabledlines.Add(lin); }
+ if (line.isbroken) {
+ disabledLines.Add(line);
+ }
}
- foreach (PRM_Station pw in powerstations)
+ foreach (PowerStation powerStation in powerStations)
{
- if(!pw.ison && !(pw.type.ToUpperInvariant().Trim() == "POLE"))
- { disabledstations.Add(pw); }
+ if (!powerStation.ison && !(powerStation.type.ToUpperInvariant().Trim() == "POLE")){
+ disabledStations.Add(powerStation);
+ }
}
return;
}
//search function for power graph
- public void Chekpwpoints(PRM_Station sourcepoint)
+ private void CheckPowerPointsForStation(PowerStation sourcepoint)
{
if (!sourcepoint.ison)
{
- MessageBox.Show("Checkpwpoints is called from disabled sourcepoint");
+ throw new Exception("CheckPowerPointsForStation is called from disabled sourcepoint");
return;
}
-
-
-
- // if the point is not a pole - i.e. we know
- // it can redistribute power within connected lines
- // we turn it ON if any of the connected lines are powered
- foreach (PRM_Line line in sourcepoint.linelist)
+ // if the point is not a pole - i.e. we know
+ // it can redistribute power within connected lines
+ // we turn it ON if any of the connected lines are powered
+ foreach (Powerline line in sourcepoint.linelist)
+ {
+ if (!line.isbroken && !line.ison)
{
- if (!line.isbroken && !line.ison)
+ line.ison = true;
+ foreach (PowerStation powerStation in powerStations)
{
- line.ison = true;
- foreach (PRM_Station pwst in powerstations)
+ if (powerStation.identifier != sourcepoint.identifier && (powerStation.identifier == line.pointFromID || powerStation.identifier == line.pointToID))
{
- if (pwst.identifier != sourcepoint.identifier && (pwst.identifier == line.pointFromID || pwst.identifier == line.pointToID))
- {
- if (!(sourcepoint.type.Trim().ToUpperInvariant() == "POLE"))
- {
- pwst.ison = true;
- Chekpwpoints(pwst);
+ if (!(sourcepoint.type.Trim().ToUpperInvariant() == "POLE")) {
+ powerStation.ison = true;
+ CheckPowerPointsForStation(powerStation);
}
- else
- {
+ else {
// if line is a pole we have to check if it's actually able to
// get electricity to other points i.e. no connected lines are broken
- bool polcheck = false;
- foreach (PRM_Line poline in pwst.linelist)
+ bool powerLineCheck = false;
+ foreach (Powerline powerline in powerStation.linelist)
{
- if (poline.isbroken) { polcheck = true; }
-
+ if (powerline.isbroken) {
+ powerLineCheck = true;
+ }
}
- if (!polcheck)
+ if (!powerLineCheck)
{
- pwst.ison = true;
- Chekpwpoints(pwst);
+ powerStation.ison = true;
+ CheckPowerPointsForStation(powerStation);
}
}
- }
}
}
- //else we have broken line or already switched ON powerpoint
}
-
+ //else we have broken line or already switched ON powerpoint
+ }
+
}
- //preparing powerstations and lists of lines for them to get a graph-like structure
- public void Powerprep()
+ //preparing powerstations and lists of lines for them to get a graph-like structure
+ private void PreparingPowerItems()
{
//First we make sure that all the sources are ON
//and all non sources are OFF
- foreach (PRM_Station pwstat in powerstations)
+ foreach (PowerStation powerStation in powerStations)
{
- if (pwstat.issource == true)
- { pwstat.ison = true; }
- else { pwstat.ison = false; }
+ if (powerStation.issource == true) {
+ powerStation.ison = true;
+ }
+ else {
+ powerStation.ison = false;
+ }
// for each power station we create a list of powerlines it is attached to
- List<PRM_Line> lines = new List<PRM_Line>();
-
- foreach (PRM_Line line in powerlines)
+ List<Powerline> lines = new List<Powerline>();
+
+ foreach (Powerline line in powerLines)
{
-
//we also switch OFF all lines
line.ison = false;
- if (line.pointFromID == pwstat.identifier || line.pointToID == pwstat.identifier)
- {
+ if (line.pointFromID == powerStation.identifier || line.pointToID == powerStation.identifier) {
lines.Add(line);
}
}
- pwstat.linelist = lines;
+ powerStation.linelist = lines;
}
}
- public List<PRM_Line> brokenPowerLinesAfterCheck()
+ public List<Powerline> brokenPowerLinesAfterCheck()
{
- List<PRM_Line> brklines = new List<PRM_Line>();
- foreach (PRM_Line curve in powerlines)
+ List<Powerline> brklines = new List<Powerline>();
+ // actually there are curves in powerLines
+ foreach (Powerline powerCurve in powerLines)
{
// get coordinates list
- List<PRM_coordinate> points = curve.coords;
+ List<Coordinate> points = powerCurve.coords;
List<bool> checkList = new List<bool>();
// cycle throw all points in line
@@ -265,40 +265,38 @@ namespace MES_Wind_prm
double y1 = points[i - 1].Y;
double x2 = points[i].X;
double y2 = points[i].Y;
- bool result = linearLineIsBroken(points[i - 1], points[i], curve.height, curve.power);
+ bool result = linearLineIsBroken(points[i - 1], points[i], powerCurve.height, powerCurve.power);
checkList.Add(result);
}
foreach (bool chkpnt in checkList)
{
if (chkpnt == true)
{
- curve.isbroken = true;
+ powerCurve.isbroken = true;
}
}
- if (curve.isbroken)
+ if (powerCurve.isbroken)
{
- brklines.Add(curve);
+ brklines.Add(powerCurve);
}
}
return brklines;
}
-
- bool linearLineIsBroken(PRM_coordinate coord1, PRM_coordinate coord2, double heightLine, int power)
+
+ private bool linearLineIsBroken(Coordinate coord1, Coordinate coord2, double heightLine, int power)
{
double distance = Math.Sqrt((coord2.X - coord1.X) * (coord2.X - coord1.X) + (coord2.Y - coord1.Y) * (coord2.Y - coord1.Y));
double distpropD = distance / dist_threshold;
- List<PRM_coordinate> pointlist = new List<PRM_coordinate>();
- PRM_coordinate midpoint = new PRM_coordinate();
+ List<Coordinate> pointlist = new List<Coordinate>();
+ Coordinate midpoint = new Coordinate();
int distpropI = Convert.ToInt32(distpropD);
if (distpropI > 1)
{
double constXdiff = (coord2.X - coord1.X) / distpropI;
double constYdiff = (coord2.Y - coord1.Y) / distpropI;
- PRM_coordinate subCoord1 = new PRM_coordinate(coord1.X, coord1.Y);
- PRM_coordinate subCoord2 = new PRM_coordinate(coord1.X + constXdiff, coord1.Y + constXdiff);
-
-
+ Coordinate subCoord1 = new Coordinate(coord1.X, coord1.Y);
+ Coordinate subCoord2 = new Coordinate(coord1.X + constXdiff, coord1.Y + constXdiff);
for (int j = 0; j < distpropI; j++)
{
if (j == 0)
@@ -322,27 +320,30 @@ namespace MES_Wind_prm
}
else
{
- midpoint.X = (coord1.X + coord2.X)/2;
- midpoint.Y = (coord1.Y + coord2.Y)/2;
+ midpoint.X = (coord1.X + coord2.X) / 2;
+ midpoint.Y = (coord1.Y + coord2.Y) / 2;
pointlist.Add(midpoint);
}
- PRMFunctionType climateType;
- //PRMFunctionType climateType = useClimate10 ? PRMFunctionType.PRMFunctionClimate10 : PRMFunctionType.PRMFunctionClimate5;
- if (power > 5 && power < 330)
- {
- climateType = PRMFunctionType.PRMFunctionClimate10;
+ FunctionType climateType;
+ if (power > 5 && power < 330)
+ {
+ climateType = FunctionType.FunctionClimate10;
+ }
+ else
+ {
+ if (power <= 5) {
+ climateType = FunctionType.FunctionClimate5;
}
- else
- {
- if (power <= 5) { climateType = PRMFunctionType.PRMFunctionClimate5; }
- else { climateType = PRMFunctionType.PRMFunctionClimate15; }
+ else {
+ climateType = FunctionType.FunctionClimate15;
}
+ }
List<bool> checkbool = new List<bool>();
- foreach (PRM_coordinate coords in pointlist)
+ foreach (Coordinate coords in pointlist)
{
bool res = false;
- double uwind = interpol(coords, PRMFunctionType.PRMFunctionVelocityX);
- double vwind = interpol(coords, PRMFunctionType.PRMFunctionVelocityY);
+ double uwind = interpol(coords, FunctionType.FunctionVelocityX);
+ double vwind = interpol(coords, FunctionType.FunctionVelocityY);
double climwind = interpol(coords, climateType);
double umod = Math.Sqrt(uwind * uwind + vwind * vwind); ;
double angleline = Math.Atan2((coord2.Y - coord1.Y), (coord2.X - coord1.X));
@@ -366,9 +367,9 @@ namespace MES_Wind_prm
if (Ppr >= Pcl)
{
// here line is broken
- res=true;
+ res = true;
}
-
+
}
checkbool.Add(res);
}
@@ -380,20 +381,20 @@ namespace MES_Wind_prm
return result;
}
- double[] affineCoefficients(PRMFunctionType functionType)
+ double[] affineCoefficients(FunctionType functionType)
{
switch (functionType)
{
- case PRMFunctionType.PRMFunctionVelocityX:
- case PRMFunctionType.PRMFunctionVelocityY:
+ case FunctionType.FunctionVelocityX:
+ case FunctionType.FunctionVelocityY:
{
- return prognostic_AffineCoefficients;
+ return prognosticAffineCoefficients;
}
- case PRMFunctionType.PRMFunctionClimate5:
- case PRMFunctionType.PRMFunctionClimate10:
- case PRMFunctionType.PRMFunctionClimate15:
+ case FunctionType.FunctionClimate5:
+ case FunctionType.FunctionClimate10:
+ case FunctionType.FunctionClimate15:
{
- return climate_AffineCoefficients;
+ return climateAffineCoefficients;
}
default:
break;
@@ -403,7 +404,7 @@ namespace MES_Wind_prm
// Taken from DotSpatial https://github.com/ViceIce/DotSpatial/blob/22c156c7646b1595d88d2523c066a9c6ab4d3a53/DotSpatial.Data/RasterBoundsExt.cs
// RasterBoundsExt.cs. Define AffineCoefficients like this.
- PRM_index projectionToCell(PRM_coordinate coordinate, PRMFunctionType functionType)
+ Index projectionToCell(Coordinate coordinate, FunctionType functionType)
{
double[] c = affineCoefficients(functionType);
double rw, cl;
@@ -432,24 +433,25 @@ namespace MES_Wind_prm
if (iRow < 0 || iCol < 0 || iRow >= countInList(functionType, true) || iCol >= countInList(functionType, false))
{
- return new PRM_index();
+ return new Index();
}
- return new PRM_index(iRow, iCol);
+ return new Index(iRow, iCol);
}
- PRM_coordinate cellToProjection(PRM_index index, PRMFunctionType functionType)
+ Coordinate cellToProjection(Index index, FunctionType functionType)
{
- switch (functionType) {
- case PRMFunctionType.PRMFunctionVelocityX:
- case PRMFunctionType.PRMFunctionVelocityY:
+ switch (functionType)
+ {
+ case FunctionType.FunctionVelocityX:
+ case FunctionType.FunctionVelocityY:
{
- return prognostic_cells[index.Row][index.Col].coords;
+ return prognosticCells[index.Row][index.Col].coords;
}
- case PRMFunctionType.PRMFunctionClimate5:
- case PRMFunctionType.PRMFunctionClimate10:
- case PRMFunctionType.PRMFunctionClimate15:
+ case FunctionType.FunctionClimate5:
+ case FunctionType.FunctionClimate10:
+ case FunctionType.FunctionClimate15:
{
- return climate_cells[index.Row][index.Col].coords;
+ return climateCells[index.Row][index.Col].coords;
}
default:
break;
@@ -457,20 +459,20 @@ namespace MES_Wind_prm
return null;
}
- int countInList(PRMFunctionType functionType, bool forRows)
+ int countInList(FunctionType functionType, bool forRows)
{
switch (functionType)
{
- case PRMFunctionType.PRMFunctionVelocityX:
- case PRMFunctionType.PRMFunctionVelocityY:
+ case FunctionType.FunctionVelocityX:
+ case FunctionType.FunctionVelocityY:
{
- return forRows ? prognostic_cells.Count : prognostic_cells[0].Count;
+ return forRows ? prognosticCells.Count : prognosticCells[0].Count;
}
- case PRMFunctionType.PRMFunctionClimate5:
- case PRMFunctionType.PRMFunctionClimate10:
- case PRMFunctionType.PRMFunctionClimate15:
+ case FunctionType.FunctionClimate5:
+ case FunctionType.FunctionClimate10:
+ case FunctionType.FunctionClimate15:
{
- return forRows ? climate_cells.Count : climate_cells[0].Count;
+ return forRows ? climateCells.Count : climateCells[0].Count;
}
default:
break;
@@ -478,29 +480,29 @@ namespace MES_Wind_prm
return 0;
}
- double valueForFunction(PRMFunctionType functionType, PRM_index index)
+ double valueForFunction(FunctionType functionType, Index index)
{
switch (functionType)
{
- case PRMFunctionType.PRMFunctionVelocityX:
+ case FunctionType.FunctionVelocityX:
{
- return prognostic_cells[index.Row][index.Col].velocityX;
+ return prognosticCells[index.Row][index.Col].velocityX;
}
- case PRMFunctionType.PRMFunctionVelocityY:
+ case FunctionType.FunctionVelocityY:
{
- return prognostic_cells[index.Row][index.Col].velocityY;
+ return prognosticCells[index.Row][index.Col].velocityY;
}
- case PRMFunctionType.PRMFunctionClimate5:
+ case FunctionType.FunctionClimate5:
{
- return climate_cells[index.Row][index.Col].wind5;
+ return climateCells[index.Row][index.Col].wind5;
}
- case PRMFunctionType.PRMFunctionClimate10:
+ case FunctionType.FunctionClimate10:
{
- return climate_cells[index.Row][index.Col].wind10;
+ return climateCells[index.Row][index.Col].wind10;
}
- case PRMFunctionType.PRMFunctionClimate15:
+ case FunctionType.FunctionClimate15:
{
- return climate_cells[index.Row][index.Col].wind15;
+ return climateCells[index.Row][index.Col].wind15;
}
default:
break;
@@ -508,20 +510,20 @@ namespace MES_Wind_prm
return 0;
}
- PRM_cell_size cellSizeForFunction(PRMFunctionType functionType)
+ CellSize cellSizeForFunction(FunctionType functionType)
{
switch (functionType)
{
- case PRMFunctionType.PRMFunctionVelocityX:
- case PRMFunctionType.PRMFunctionVelocityY:
+ case FunctionType.FunctionVelocityX:
+ case FunctionType.FunctionVelocityY:
{
- return prognostic_cellsize;
+ return prognosticCellSize;
}
- case PRMFunctionType.PRMFunctionClimate5:
- case PRMFunctionType.PRMFunctionClimate10:
- case PRMFunctionType.PRMFunctionClimate15:
+ case FunctionType.FunctionClimate5:
+ case FunctionType.FunctionClimate10:
+ case FunctionType.FunctionClimate15:
{
- return climate_cellsize;
+ return climateCellSize;
}
default:
break;
@@ -529,13 +531,13 @@ namespace MES_Wind_prm
throw new Exception("There is no cell size");
}
- double interpol(PRM_coordinate coords, PRMFunctionType functionType)
+ double interpol(Coordinate coords, FunctionType functionType)
{
// select directions for projections
const bool normalX = true;// true - East, false West
const bool normalY = false;// true - North, false South
- PRM_index rc = projectionToCell(coords, functionType);
- PRM_coordinate center = cellToProjection(rc, functionType);
+ Index rc = projectionToCell(coords, functionType);
+ Coordinate center = cellToProjection(rc, functionType);
double xDiff = coords.X - center.X;
double yDiff = coords.Y - center.Y;
//calculate second index
@@ -557,15 +559,15 @@ namespace MES_Wind_prm
col2 = rc.Col > 0 ? rc.Col - 1 : rc.Col + 1;
}
// indexes and values at bounds
- PRM_index rcBotLeft = new PRM_index(Math.Min(row2, rc.Row), Math.Min(col2, rc.Col));
- PRM_index rcBotRight = new PRM_index(Math.Max(row2, rc.Row), Math.Min(col2, rc.Col));
- PRM_index rcTopLeft = new PRM_index(Math.Min(row2, rc.Row), Math.Max(col2, rc.Col));
- PRM_index rcTopRight = new PRM_index(Math.Max(row2, rc.Row), Math.Max(col2, rc.Col));
+ Index rcBotLeft = new Index(Math.Min(row2, rc.Row), Math.Min(col2, rc.Col));
+ Index rcBotRight = new Index(Math.Max(row2, rc.Row), Math.Min(col2, rc.Col));
+ Index rcTopLeft = new Index(Math.Min(row2, rc.Row), Math.Max(col2, rc.Col));
+ Index rcTopRight = new Index(Math.Max(row2, rc.Row), Math.Max(col2, rc.Col));
double valBotLeft = valueForFunction(functionType, rcBotLeft);
double valBotRight = valueForFunction(functionType, rcBotRight);
double valTopLeft = valueForFunction(functionType, rcTopLeft);
double valTopRight = valueForFunction(functionType, rcTopRight);
- PRM_coordinate origin = cellToProjection(rcBotLeft, functionType);
+ Coordinate origin = cellToProjection(rcBotLeft, functionType);
//PRM_coordinate last = cellToProjection(rcTopRight, functionType);//test only
// sizes for cell
double hx = cellSizeForFunction(functionType).width;
diff --git a/PRMLibrary/PRMLibrary.csproj b/PRMLibrary/PRMLibrary.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..46e93d18572e399ca4cb33ef65de4adbbaf88f3c
--- /dev/null
+++ b/PRMLibrary/PRMLibrary.csproj
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>8.0.30703</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{599B5E9B-293A-4866-A50F-6BB7DC36A81C}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>PRMLibrary</RootNamespace>
+ <AssemblyName>PRMLibrary</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="PRMLibrary.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
\ No newline at end of file
diff --git a/PRMLibrary/Properties/AssemblyInfo.cs b/PRMLibrary/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000000000000000000000000000000000..d224a2babbb2da611a6db6e04e268524b89f5d54
--- /dev/null
+++ b/PRMLibrary/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Управление общими сведениями о сборке осуществляется с помощью
+// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения,
+// связанные со сборкой.
+[assembly: AssemblyTitle("PRMLibrary")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("PRMLibrary")]
+[assembly: AssemblyCopyright("Copyright © 2016")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Параметр ComVisible со значением FALSE делает типы в сборке невидимыми
+// для COM-компонентов. Если требуется обратиться к типу в этой сборке через
+// COM, задайте атрибуту ComVisible значение TRUE для этого типа.
+[assembly: ComVisible(false)]
+
+// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
+[assembly: Guid("1d3cf550-16e9-4c87-aad5-a435f0689f4c")]
+
+// Сведения о версии сборки состоят из следующих четырех значений:
+//
+// Основной номер версии
+// Дополнительный номер версии
+// Номер построения
+// Редакция
+//
+// Можно задать все значения или принять номер построения и номер редакции по умолчанию,
+// используя "*", как показано ниже:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/PRMLibrary/bin/Debug/PRMLibrary.dll b/PRMLibrary/bin/Debug/PRMLibrary.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b38bcda0e7828ef5fbfeb94416c65af3dd8a0042
Binary files /dev/null and b/PRMLibrary/bin/Debug/PRMLibrary.dll differ
diff --git a/PRMLibrary/bin/Debug/PRMLibrary.pdb b/PRMLibrary/bin/Debug/PRMLibrary.pdb
new file mode 100644
index 0000000000000000000000000000000000000000..33166b797f14ccbed1edfb7667d1b71dc292d0a8
Binary files /dev/null and b/PRMLibrary/bin/Debug/PRMLibrary.pdb differ
diff --git a/PRMLibrary/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/PRMLibrary/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000000000000000000000000000000000000..a8396ac748a0cfb53f7f341086dd6c68daf79c83
Binary files /dev/null and b/PRMLibrary/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/PRMLibrary/obj/Debug/PRMLibrary.csproj.FileListAbsolute.txt b/PRMLibrary/obj/Debug/PRMLibrary.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000000000000000000000000000000000000..590309a5408cd344c37c367c691ea99f63c802ee
--- /dev/null
+++ b/PRMLibrary/obj/Debug/PRMLibrary.csproj.FileListAbsolute.txt
@@ -0,0 +1,4 @@
+C:\Users\Geophyslab-laptop\Documents\MES_Wind2\PRMLibrary\bin\Debug\PRMLibrary.dll
+C:\Users\Geophyslab-laptop\Documents\MES_Wind2\PRMLibrary\bin\Debug\PRMLibrary.pdb
+C:\Users\Geophyslab-laptop\Documents\MES_Wind2\PRMLibrary\obj\Debug\PRMLibrary.dll
+C:\Users\Geophyslab-laptop\Documents\MES_Wind2\PRMLibrary\obj\Debug\PRMLibrary.pdb
diff --git a/PRMLibrary/obj/Debug/PRMLibrary.dll b/PRMLibrary/obj/Debug/PRMLibrary.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b38bcda0e7828ef5fbfeb94416c65af3dd8a0042
Binary files /dev/null and b/PRMLibrary/obj/Debug/PRMLibrary.dll differ
diff --git a/PRMLibrary/obj/Debug/PRMLibrary.pdb b/PRMLibrary/obj/Debug/PRMLibrary.pdb
new file mode 100644
index 0000000000000000000000000000000000000000..33166b797f14ccbed1edfb7667d1b71dc292d0a8
Binary files /dev/null and b/PRMLibrary/obj/Debug/PRMLibrary.pdb differ