diff --git a/.vs/MES_Wind/v14/.suo b/.vs/MES_Wind/v14/.suo
index cb6fd1d498a0625adb592e12c13dcb104d419259..08af522f7c927f14408dee4f1187fe6ae765e6a0 100644
Binary files a/.vs/MES_Wind/v14/.suo and b/.vs/MES_Wind/v14/.suo differ
diff --git a/MES_Wind.suo b/MES_Wind.suo
index 2ea2f364cb9dad12c9cc25b314f33f3b774f6c5d..97a24a568608b5f69373b8c0f05bc0e80bb23560 100644
Binary files a/MES_Wind.suo and b/MES_Wind.suo differ
diff --git a/MES_Wind/bin/Debug/MES_Wind.exe b/MES_Wind/bin/Debug/MES_Wind.exe
index 8b4b4ded8be093d926e5c38717adeed4c227aa48..4ba5d4f04cca387742d936bd39cebda4c1f527fb 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 93bac92b4d2994488e9c8b653f72e81f608d3621..67a6071cd0de29fc5c8b32d50652a7fbaf40d11c 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/frmMain.cs b/MES_Wind/frmMain.cs
index 142cfe8ed4f822d836c68b95c3cc858f3c8f69ac..8f75115c93d533202d10ebb3f835c42ddd5cdb74 100644
--- a/MES_Wind/frmMain.cs
+++ b/MES_Wind/frmMain.cs
@@ -132,10 +132,55 @@ namespace MES_Wind
         }
         public double interpol(Coordinate coords, IMapRasterLayer raster)
         {
-         double rval = 0;
-            RcIndex rc= raster.DataSet.Bounds.ProjToCell(coords);
-            rval = raster.DataSet.Value[rc.Row, rc.Column];
-         return  rval;
+            const bool normalX = true;
+            const bool normalY = false;
+            RcIndex rc = raster.DataSet.Bounds.ProjToCell(coords);
+            Coordinate center = raster.DataSet.Bounds.CellCenter_ToProj(rc.Row, rc.Column);
+            double xDiff = coords.X - center.X;
+            double yDiff = coords.Y - center.Y;
+            //calculate second index
+            int row2, col2;
+            if ((xDiff >= 0 && normalX ) || (!normalX && xDiff < 0))
+            {
+                row2 = rc.Row >= raster.DataSet.EndRow ? rc.Row - 1 : rc.Row + 1;
+            }
+            else
+            {
+                row2 = rc.Row > 0 ? rc.Row - 1 : rc.Row + 1;
+            }
+            if ( (yDiff >= 0 && normalY) || (!normalY && yDiff < 0))
+            {
+                col2 = rc.Column >= raster.DataSet.EndColumn ? rc.Column - 1 : rc.Column + 1;
+            }
+            else
+            {
+                col2 = rc.Column > 0 ? rc.Column - 1 : rc.Column + 1;
+            }
+            // indexes and values at bounds
+            RcIndex rcBotLeft  = new RcIndex(Math.Min(row2, rc.Row), Math.Min(col2, rc.Column));
+            RcIndex rcBotRight = new RcIndex(Math.Max(row2, rc.Row), Math.Min(col2, rc.Column));
+            RcIndex rcTopLeft  = new RcIndex(Math.Min(row2, rc.Row), Math.Max(col2, rc.Column));
+            RcIndex rcTopRight = new RcIndex(Math.Max(row2, rc.Row), Math.Max(col2, rc.Column));
+            double valBotLeft  = raster.DataSet.Value[rcBotLeft.Row, rcBotLeft.Column];
+            double valBotRight = raster.DataSet.Value[rcBotRight.Row, rcBotRight.Column];
+            double valTopLeft  = raster.DataSet.Value[rcTopLeft.Row, rcTopLeft.Column];
+            double valTopRight = raster.DataSet.Value[rcTopRight.Row, rcTopRight.Column];
+            Coordinate origin = raster.DataSet.CellToProj(rcBotLeft.Row, rcBotLeft.Column);
+            //Coordinate last = raster.DataSet.CellToProj(rcTopRight.Row, rcTopRight.Column);//test only
+            // sizes for cell
+            double hx = raster.DataSet.Bounds.CellWidth;
+            double hy = raster.DataSet.Bounds.CellHeight;
+            // coefficients
+            double px = (coords.X - origin.X) / hx;
+            double py = (coords.Y - origin.Y) / hy;
+            // inverse directions
+            px *= normalX ? 1 : -1;
+            py *= normalY ? 1 : -1;
+            // interpolation
+            double top = (1 - px) * valTopLeft + px * valTopRight;
+            double bot = (1 - px) * valBotLeft + px * valBotRight;
+            double rval = (1 - py) * bot + py * top;
+            return rval;
         }
 
         private void bntLoadWindX_Click(object sender, EventArgs e)
diff --git a/MES_Wind/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/MES_Wind/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
index 27c54be79154026d2b3cdf1afe456561f89b70a9..147137f32ceb82e088c1738cdf9d757e9d3d0565 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.GenerateResource.Cache b/MES_Wind/obj/Debug/MES_Wind.csproj.GenerateResource.Cache
index 7625ca23c955eb59eae90ea06ae0f436d78e15e3..2519674b69188d02cab962f1e4ea362abfbc3dc7 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 d4ec5078c7883e25a038a5bbc60b1d2c4ed47b30..d5f6c22ffb8e82ddfda4a47b3fdfe5c6b7bea630 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 8b4b4ded8be093d926e5c38717adeed4c227aa48..4ba5d4f04cca387742d936bd39cebda4c1f527fb 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 93bac92b4d2994488e9c8b653f72e81f608d3621..67a6071cd0de29fc5c8b32d50652a7fbaf40d11c 100644
Binary files a/MES_Wind/obj/Debug/MES_Wind.pdb and b/MES_Wind/obj/Debug/MES_Wind.pdb differ