wip: write msgPacked grid
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
<PackageVersion Include="Oceanbox.FvcomKit" Version="5.12.1" />
|
||||
<PackageVersion Include="SDSLite-O" Version="2.7.2" />
|
||||
<PackageVersion Include="Serilog" Version="4.2.0" />
|
||||
<PackageVersion Include="MessagePack" Version="3.1.3"/>
|
||||
<!-- CLI -->
|
||||
<PackageVersion Include="Argu" Version="6.2.5" />
|
||||
<PackageVersion Include="FsToolKit.ErrorHandling" Version="4.18.0" />
|
||||
|
||||
@@ -203,16 +203,6 @@
|
||||
"MathNet.Numerics": "5.0.0"
|
||||
}
|
||||
},
|
||||
"MessagePack": {
|
||||
"type": "Transitive",
|
||||
"resolved": "3.1.3",
|
||||
"contentHash": "UiNv3fknvPzh5W+S0VV96R17RBZQQU71qgmsMnjjRZU2rtQM/XcTnOB+klT2dA6T1mxjnNKYrEm164AoXvGmYg==",
|
||||
"dependencies": {
|
||||
"MessagePack.Annotations": "3.1.3",
|
||||
"MessagePackAnalyzer": "3.1.3",
|
||||
"Microsoft.NET.StringTools": "17.11.4"
|
||||
}
|
||||
},
|
||||
"MessagePack.Annotations": {
|
||||
"type": "Transitive",
|
||||
"resolved": "3.1.3",
|
||||
@@ -409,6 +399,7 @@
|
||||
"type": "Project",
|
||||
"dependencies": {
|
||||
"Fli": "[1.111.10, )",
|
||||
"MessagePack": "[3.1.3, )",
|
||||
"Oceanbox.FvcomKit": "[5.12.1, )",
|
||||
"SDSLite-O": "[2.7.2, )",
|
||||
"Serilog": "[4.2.0, )"
|
||||
@@ -422,6 +413,17 @@
|
||||
"dependencies": {
|
||||
"FSharp.Core": "6.0.7"
|
||||
}
|
||||
},
|
||||
"MessagePack": {
|
||||
"type": "CentralTransitive",
|
||||
"requested": "[3.1.3, )",
|
||||
"resolved": "3.1.3",
|
||||
"contentHash": "UiNv3fknvPzh5W+S0VV96R17RBZQQU71qgmsMnjjRZU2rtQM/XcTnOB+klT2dA6T1mxjnNKYrEm164AoXvGmYg==",
|
||||
"dependencies": {
|
||||
"MessagePack.Annotations": "3.1.3",
|
||||
"MessagePackAnalyzer": "3.1.3",
|
||||
"Microsoft.NET.StringTools": "17.11.4"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -340,7 +340,7 @@ let main argv =
|
||||
extendedGrid
|
||||
useZfp
|
||||
ds'
|
||||
path
|
||||
pathPrefix
|
||||
Log.Verbose $"Wrote reduced grid to {path}"
|
||||
| _ ->
|
||||
Log.Warning
|
||||
|
||||
@@ -221,16 +221,6 @@
|
||||
"MathNet.Numerics": "5.0.0"
|
||||
}
|
||||
},
|
||||
"MessagePack": {
|
||||
"type": "Transitive",
|
||||
"resolved": "3.1.3",
|
||||
"contentHash": "UiNv3fknvPzh5W+S0VV96R17RBZQQU71qgmsMnjjRZU2rtQM/XcTnOB+klT2dA6T1mxjnNKYrEm164AoXvGmYg==",
|
||||
"dependencies": {
|
||||
"MessagePack.Annotations": "3.1.3",
|
||||
"MessagePackAnalyzer": "3.1.3",
|
||||
"Microsoft.NET.StringTools": "17.11.4"
|
||||
}
|
||||
},
|
||||
"MessagePack.Annotations": {
|
||||
"type": "Transitive",
|
||||
"resolved": "3.1.3",
|
||||
@@ -435,10 +425,22 @@
|
||||
"type": "Project",
|
||||
"dependencies": {
|
||||
"Fli": "[1.111.10, )",
|
||||
"MessagePack": "[3.1.3, )",
|
||||
"Oceanbox.FvcomKit": "[5.12.1, )",
|
||||
"SDSLite-O": "[2.7.2, )",
|
||||
"Serilog": "[4.2.0, )"
|
||||
}
|
||||
},
|
||||
"MessagePack": {
|
||||
"type": "CentralTransitive",
|
||||
"requested": "[3.1.3, )",
|
||||
"resolved": "3.1.3",
|
||||
"contentHash": "UiNv3fknvPzh5W+S0VV96R17RBZQQU71qgmsMnjjRZU2rtQM/XcTnOB+klT2dA6T1mxjnNKYrEm164AoXvGmYg==",
|
||||
"dependencies": {
|
||||
"MessagePack.Annotations": "3.1.3",
|
||||
"MessagePackAnalyzer": "3.1.3",
|
||||
"Microsoft.NET.StringTools": "17.11.4"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ open Gridding.Compress
|
||||
open Oceanbox.FvcomKit
|
||||
open Microsoft.Research.Science.Data
|
||||
open Serilog
|
||||
open MessagePack
|
||||
|
||||
let private bimap f (a, b) = f a, f b
|
||||
|
||||
@@ -451,6 +452,37 @@ let private writeElements
|
||||
output.Commit()
|
||||
output
|
||||
|
||||
[<MessagePackObject>]
|
||||
type BinGrid = {
|
||||
[<Key(0)>]
|
||||
hash: byte array
|
||||
[<Key(1)>]
|
||||
vertices: (float * float) array
|
||||
[<Key(2)>]
|
||||
cells: (int * int * int) array
|
||||
}
|
||||
|
||||
let _writeBinGrid (reducedGeometry: Reduce.ReducedGrid) (filename: string) =
|
||||
Log.Verbose "MessagePacking grid geometry..."
|
||||
try
|
||||
let bg: BinGrid = {
|
||||
hash = [||]
|
||||
vertices = reducedGeometry.Nodes
|
||||
cells = reducedGeometry.Elements
|
||||
}
|
||||
Log.Debug "Serializing..."
|
||||
// FIXME: This crashes because of the openssl version, for some reason...
|
||||
let bytes = MessagePackSerializer.Serialize(bg)
|
||||
Log.Debug "Hashing object..."
|
||||
let sha1 = System.Security.Cryptography.SHA1.Create()
|
||||
let hash = sha1.ComputeHash(bytes)
|
||||
let bg' = { bg with hash = hash }
|
||||
let bytes' = MessagePackSerializer.Serialize(bg')
|
||||
System.IO.File.WriteAllBytes(filename, bytes')
|
||||
Log.Verbose $"Successfully wrote BinGrid to {filename}"
|
||||
with e ->
|
||||
Log.Error $"{e.Message}"
|
||||
|
||||
/// <summary>
|
||||
/// Write a new grid based on an original grid using only data from the
|
||||
/// nodes given by a reduced grid geometry
|
||||
@@ -475,11 +507,11 @@ let writeReducedGrid
|
||||
|
||||
// NOTE: We create and close the file immediately in order to open it again
|
||||
// with deflation turned off, for good read performance
|
||||
let newFile = new NetCDF4.NetCDFDataSet(filename)
|
||||
let newFile = new NetCDF4.NetCDFDataSet($"{filename}.nc")
|
||||
newFile.Commit()
|
||||
|
||||
let uri = NetCDF4.NetCDFUri()
|
||||
uri.FileName <- filename
|
||||
uri.FileName <- $"{filename}.nc"
|
||||
uri.OpenMode <- ResourceOpenMode.Open
|
||||
uri.Deflate <- NetCDF4.DeflateLevel.Off
|
||||
let file =
|
||||
@@ -504,4 +536,6 @@ let writeReducedGrid
|
||||
if useZfp then
|
||||
writeSpeedsLossy reducedGeometry extendedGrid nodesToIndices grid input
|
||||
|
||||
// writeBinGrid reducedGeometry $"{filename}.bin"
|
||||
|
||||
file.Dispose()
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
<PackageReference Include="SDSLite-O" />
|
||||
<PackageReference Include="Serilog" />
|
||||
<PackageReference Include="Fli" />
|
||||
<PackageReference Include="MessagePack" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="lib\zfp_comp.so">
|
||||
|
||||
@@ -29,6 +29,17 @@
|
||||
"resolved": "0.14.0",
|
||||
"contentHash": "bklebzRcXu7TBq3YdEc/H9WpMwIvIu4doA1QMAZTKvbHgKm/GH0wNW/A77JQ317mVUQ4tdgVXN1TrIc2Tpi8+g=="
|
||||
},
|
||||
"MessagePack": {
|
||||
"type": "Direct",
|
||||
"requested": "[3.1.3, )",
|
||||
"resolved": "3.1.3",
|
||||
"contentHash": "UiNv3fknvPzh5W+S0VV96R17RBZQQU71qgmsMnjjRZU2rtQM/XcTnOB+klT2dA6T1mxjnNKYrEm164AoXvGmYg==",
|
||||
"dependencies": {
|
||||
"MessagePack.Annotations": "3.1.3",
|
||||
"MessagePackAnalyzer": "3.1.3",
|
||||
"Microsoft.NET.StringTools": "17.11.4"
|
||||
}
|
||||
},
|
||||
"Oceanbox.FvcomKit": {
|
||||
"type": "Direct",
|
||||
"requested": "[5.12.1, )",
|
||||
@@ -202,16 +213,6 @@
|
||||
"MathNet.Numerics": "5.0.0"
|
||||
}
|
||||
},
|
||||
"MessagePack": {
|
||||
"type": "Transitive",
|
||||
"resolved": "3.1.3",
|
||||
"contentHash": "UiNv3fknvPzh5W+S0VV96R17RBZQQU71qgmsMnjjRZU2rtQM/XcTnOB+klT2dA6T1mxjnNKYrEm164AoXvGmYg==",
|
||||
"dependencies": {
|
||||
"MessagePack.Annotations": "3.1.3",
|
||||
"MessagePackAnalyzer": "3.1.3",
|
||||
"Microsoft.NET.StringTools": "17.11.4"
|
||||
}
|
||||
},
|
||||
"MessagePack.Annotations": {
|
||||
"type": "Transitive",
|
||||
"resolved": "3.1.3",
|
||||
|
||||
Reference in New Issue
Block a user