Skip to content

Commit aadf0d1

Browse files
NetCDF implementation of domain interfaces
1 parent db0be30 commit aadf0d1

File tree

3 files changed

+58
-0
lines changed

3 files changed

+58
-0
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package net.bald.netcdf
2+
3+
import net.bald.BinaryArray
4+
import net.bald.Container
5+
import ucar.nc2.NetcdfFile
6+
import ucar.nc2.NetcdfFiles
7+
import java.io.Closeable
8+
import java.io.File
9+
10+
/**
11+
* NetCDF implementation of [BinaryArray].
12+
* Should be closed after use.
13+
*/
14+
class NetCdfBinaryArray(
15+
override val uri: String,
16+
private val file: NetcdfFile
17+
): BinaryArray, Closeable {
18+
override val root: Container get() = NetCdfContainer(file)
19+
20+
override fun close() {
21+
file.close()
22+
}
23+
24+
companion object {
25+
fun create(fileLoc: String, uri: String? = null): NetCdfBinaryArray {
26+
TODO()
27+
}
28+
}
29+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package net.bald.netcdf
2+
3+
import net.bald.Container
4+
import net.bald.Var
5+
import ucar.nc2.NetcdfFile
6+
7+
/**
8+
* NetCDF implementation of [Container].
9+
*/
10+
class NetCdfContainer(
11+
private val file: NetcdfFile
12+
): Container {
13+
override fun vars(): Sequence<Var> {
14+
return file.variables.asSequence().map(::NetCdfVar)
15+
}
16+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package net.bald.netcdf
2+
3+
import net.bald.Var
4+
import ucar.nc2.Variable
5+
6+
/**
7+
* NetCDF implementation of [Var].
8+
*/
9+
class NetCdfVar(
10+
private val v: Variable
11+
): Var {
12+
override val name: String get() = v.shortName
13+
}

0 commit comments

Comments
 (0)