mirror of
https://github.com/meteoinfo/MeteoInfo.git
synced 2025-12-08 20:36:05 +00:00
support kriging interpolation functions
This commit is contained in:
parent
f19cc4f238
commit
66c71843e4
@ -0,0 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
13
.idea/libraries/Maven__com_itextpdf_io_7_1_152.xml
generated
13
.idea/libraries/Maven__com_itextpdf_io_7_1_152.xml
generated
@ -1,13 +0,0 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: com.itextpdf:io:7.1.15">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/itextpdf/io/7.1.15/io-7.1.15.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/itextpdf/io/7.1.15/io-7.1.15-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/itextpdf/io/7.1.15/io-7.1.15-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@ -1,13 +0,0 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: com.itextpdf:itextpdf:5.5.7">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/itextpdf/itextpdf/5.5.7/itextpdf-5.5.7.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/itextpdf/itextpdf/5.5.7/itextpdf-5.5.7-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/itextpdf/itextpdf/5.5.7/itextpdf-5.5.7-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@ -1,13 +0,0 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: com.itextpdf:kernel:7.1.15">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/itextpdf/kernel/7.1.15/kernel-7.1.15.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/itextpdf/kernel/7.1.15/kernel-7.1.15-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/itextpdf/kernel/7.1.15/kernel-7.1.15-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@ -1,13 +0,0 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: com.itextpdf:layout:7.1.15">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/itextpdf/layout/7.1.15/layout-7.1.15.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/itextpdf/layout/7.1.15/layout-7.1.15-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/itextpdf/layout/7.1.15/layout-7.1.15-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
13
.idea/libraries/Maven__com_itextpdf_pdfa_7_1_152.xml
generated
13
.idea/libraries/Maven__com_itextpdf_pdfa_7_1_152.xml
generated
@ -1,13 +0,0 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: com.itextpdf:pdfa:7.1.15">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/itextpdf/pdfa/7.1.15/pdfa-7.1.15.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/itextpdf/pdfa/7.1.15/pdfa-7.1.15-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/itextpdf/pdfa/7.1.15/pdfa-7.1.15-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
13
.idea/libraries/Maven__com_itextpdf_svg_7_1_15.xml
generated
13
.idea/libraries/Maven__com_itextpdf_svg_7_1_15.xml
generated
@ -1,13 +0,0 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: com.itextpdf:svg:7.1.15">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/itextpdf/svg/7.1.15/svg-7.1.15.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/itextpdf/svg/7.1.15/svg-7.1.15-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/itextpdf/svg/7.1.15/svg-7.1.15-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@ -1,13 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: com.l2fprod:l2fprod-common-all:0.1">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/l2fprod/l2fprod-common-all/0.1/l2fprod-common-all-0.1.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/l2fprod/l2fprod-common-all/0.1/l2fprod-common-all-0.1-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/l2fprod/l2fprod-common-all/0.1/l2fprod-common-all-0.1-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: com.l2fprod:l2fprod-common-all:0.1">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/l2fprod/l2fprod-common-all/0.1/l2fprod-common-all-0.1.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/l2fprod/l2fprod-common-all/0.1/l2fprod-common-all-0.1-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/l2fprod/l2fprod-common-all/0.1/l2fprod-common-all-0.1-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@ -1,13 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.ejml:ejml-cdense:0.32">
|
||||
<library name="Maven: org.ejml:ejml-cdense:0.40">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-cdense/0.32/ejml-cdense-0.32.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-cdense/0.40/ejml-cdense-0.40.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-cdense/0.32/ejml-cdense-0.32-javadoc.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-cdense/0.40/ejml-cdense-0.40-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-cdense/0.32/ejml-cdense-0.32-sources.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-cdense/0.40/ejml-cdense-0.40-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
13
.idea/libraries/Maven__org_ejml_ejml_cdense_0_402.xml
generated
Normal file
13
.idea/libraries/Maven__org_ejml_ejml_cdense_0_402.xml
generated
Normal file
@ -0,0 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.ejml:ejml-cdense:0.40">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-cdense/0.40/ejml-cdense-0.40.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-cdense/0.40/ejml-cdense-0.40-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-cdense/0.40/ejml-cdense-0.40-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
13
.idea/libraries/Maven__org_ejml_ejml_cdense_0_403.xml
generated
Normal file
13
.idea/libraries/Maven__org_ejml_ejml_cdense_0_403.xml
generated
Normal file
@ -0,0 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.ejml:ejml-cdense:0.40">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-cdense/0.40/ejml-cdense-0.40.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-cdense/0.40/ejml-cdense-0.40-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-cdense/0.40/ejml-cdense-0.40-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
13
.idea/libraries/Maven__org_ejml_ejml_core_0_32.xml
generated
13
.idea/libraries/Maven__org_ejml_ejml_core_0_32.xml
generated
@ -1,13 +0,0 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.ejml:ejml-core:0.32">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-core/0.32/ejml-core-0.32.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-core/0.32/ejml-core-0.32-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-core/0.32/ejml-core-0.32-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
13
.idea/libraries/Maven__org_ejml_ejml_core_0_40.xml
generated
Normal file
13
.idea/libraries/Maven__org_ejml_ejml_core_0_40.xml
generated
Normal file
@ -0,0 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.ejml:ejml-core:0.40">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-core/0.40/ejml-core-0.40.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-core/0.40/ejml-core-0.40-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-core/0.40/ejml-core-0.40-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
13
.idea/libraries/Maven__org_ejml_ejml_core_0_402.xml
generated
Normal file
13
.idea/libraries/Maven__org_ejml_ejml_core_0_402.xml
generated
Normal file
@ -0,0 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.ejml:ejml-core:0.40">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-core/0.40/ejml-core-0.40.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-core/0.40/ejml-core-0.40-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-core/0.40/ejml-core-0.40-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@ -1,13 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.ejml:ejml-ddense:0.32">
|
||||
<library name="Maven: org.ejml:ejml-ddense:0.40">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-ddense/0.32/ejml-ddense-0.32.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-ddense/0.40/ejml-ddense-0.40.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-ddense/0.32/ejml-ddense-0.32-javadoc.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-ddense/0.40/ejml-ddense-0.40-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-ddense/0.32/ejml-ddense-0.32-sources.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-ddense/0.40/ejml-ddense-0.40-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@ -1,13 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.ejml:ejml-ddense:0.32">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-ddense/0.32/ejml-ddense-0.32.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-ddense/0.32/ejml-ddense-0.32-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-ddense/0.32/ejml-ddense-0.32-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.ejml:ejml-ddense:0.40">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-ddense/0.40/ejml-ddense-0.40.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-ddense/0.40/ejml-ddense-0.40-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-ddense/0.40/ejml-ddense-0.40-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@ -1,13 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.ejml:ejml-dsparse:0.32">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-dsparse/0.32/ejml-dsparse-0.32.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-dsparse/0.32/ejml-dsparse-0.32-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-dsparse/0.32/ejml-dsparse-0.32-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.ejml:ejml-dsparse:0.40">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-dsparse/0.40/ejml-dsparse-0.40.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-dsparse/0.40/ejml-dsparse-0.40-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-dsparse/0.40/ejml-dsparse-0.40-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@ -1,13 +0,0 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.ejml:ejml-experimental:0.32">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-experimental/0.32/ejml-experimental-0.32.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-experimental/0.32/ejml-experimental-0.32-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-experimental/0.32/ejml-experimental-0.32-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@ -1,13 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.ejml:ejml-experimental:0.32">
|
||||
<library name="Maven: org.ejml:ejml-experimental:0.40">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-experimental/0.32/ejml-experimental-0.32.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-experimental/0.40/ejml-experimental-0.40.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-experimental/0.32/ejml-experimental-0.32-javadoc.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-experimental/0.40/ejml-experimental-0.40-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-experimental/0.32/ejml-experimental-0.32-sources.jar!/" />
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-experimental/0.40/ejml-experimental-0.40-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
13
.idea/libraries/Maven__org_ejml_ejml_fdense_0_40.xml
generated
Normal file
13
.idea/libraries/Maven__org_ejml_ejml_fdense_0_40.xml
generated
Normal file
@ -0,0 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.ejml:ejml-fdense:0.40">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-fdense/0.40/ejml-fdense-0.40.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-fdense/0.40/ejml-fdense-0.40-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-fdense/0.40/ejml-fdense-0.40-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
13
.idea/libraries/Maven__org_ejml_ejml_fdense_0_402.xml
generated
Normal file
13
.idea/libraries/Maven__org_ejml_ejml_fdense_0_402.xml
generated
Normal file
@ -0,0 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.ejml:ejml-fdense:0.40">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-fdense/0.40/ejml-fdense-0.40.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-fdense/0.40/ejml-fdense-0.40-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-fdense/0.40/ejml-fdense-0.40-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
13
.idea/libraries/Maven__org_ejml_ejml_fsparse_0_402.xml
generated
Normal file
13
.idea/libraries/Maven__org_ejml_ejml_fsparse_0_402.xml
generated
Normal file
@ -0,0 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.ejml:ejml-fsparse:0.40">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-fsparse/0.40/ejml-fsparse-0.40.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-fsparse/0.40/ejml-fsparse-0.40-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-fsparse/0.40/ejml-fsparse-0.40-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@ -1,13 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.ejml:ejml-simple:0.32">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-simple/0.32/ejml-simple-0.32.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-simple/0.32/ejml-simple-0.32-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-simple/0.32/ejml-simple-0.32-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.ejml:ejml-simple:0.40">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-simple/0.40/ejml-simple-0.40.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-simple/0.40/ejml-simple-0.40-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-simple/0.40/ejml-simple-0.40-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@ -1,13 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.ejml:ejml-zdense:0.32">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-zdense/0.32/ejml-zdense-0.32.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-zdense/0.32/ejml-zdense-0.32-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-zdense/0.32/ejml-zdense-0.32-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.ejml:ejml-zdense:0.40">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-zdense/0.40/ejml-zdense-0.40.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-zdense/0.40/ejml-zdense-0.40-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ejml/ejml-zdense/0.40/ejml-zdense-0.40-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@ -1,13 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.freehep:freehep-graphics2d:2.4">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphics2d/2.4/freehep-graphics2d-2.4.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphics2d/2.4/freehep-graphics2d-2.4-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphics2d/2.4/freehep-graphics2d-2.4-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.freehep:freehep-graphics2d:2.4">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphics2d/2.4/freehep-graphics2d-2.4.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphics2d/2.4/freehep-graphics2d-2.4-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphics2d/2.4/freehep-graphics2d-2.4-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@ -1,13 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.freehep:freehep-graphicsbase:2.4">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsbase/2.4/freehep-graphicsbase-2.4.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsbase/2.4/freehep-graphicsbase-2.4-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsbase/2.4/freehep-graphicsbase-2.4-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.freehep:freehep-graphicsbase:2.4">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsbase/2.4/freehep-graphicsbase-2.4.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsbase/2.4/freehep-graphicsbase-2.4-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsbase/2.4/freehep-graphicsbase-2.4-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@ -1,13 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.freehep:freehep-graphicsio-emf:2.4">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsio-emf/2.4/freehep-graphicsio-emf-2.4.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsio-emf/2.4/freehep-graphicsio-emf-2.4-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsio-emf/2.4/freehep-graphicsio-emf-2.4-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.freehep:freehep-graphicsio-emf:2.4">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsio-emf/2.4/freehep-graphicsio-emf-2.4.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsio-emf/2.4/freehep-graphicsio-emf-2.4-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsio-emf/2.4/freehep-graphicsio-emf-2.4-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@ -1,13 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.freehep:freehep-graphicsio-pdf:2.4">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsio-pdf/2.4/freehep-graphicsio-pdf-2.4.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsio-pdf/2.4/freehep-graphicsio-pdf-2.4-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsio-pdf/2.4/freehep-graphicsio-pdf-2.4-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.freehep:freehep-graphicsio-pdf:2.4">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsio-pdf/2.4/freehep-graphicsio-pdf-2.4.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsio-pdf/2.4/freehep-graphicsio-pdf-2.4-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsio-pdf/2.4/freehep-graphicsio-pdf-2.4-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
13
.idea/libraries/Maven__org_freehep_freehep_graphicsio_pdf_2_42.xml
generated
Normal file
13
.idea/libraries/Maven__org_freehep_freehep_graphicsio_pdf_2_42.xml
generated
Normal file
@ -0,0 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.freehep:freehep-graphicsio-pdf:2.4">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsio-pdf/2.4/freehep-graphicsio-pdf-2.4.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsio-pdf/2.4/freehep-graphicsio-pdf-2.4-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsio-pdf/2.4/freehep-graphicsio-pdf-2.4-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@ -1,13 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.freehep:freehep-graphicsio-ps:2.4">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsio-ps/2.4/freehep-graphicsio-ps-2.4.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsio-ps/2.4/freehep-graphicsio-ps-2.4-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsio-ps/2.4/freehep-graphicsio-ps-2.4-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.freehep:freehep-graphicsio-ps:2.4">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsio-ps/2.4/freehep-graphicsio-ps-2.4.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsio-ps/2.4/freehep-graphicsio-ps-2.4-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-graphicsio-ps/2.4/freehep-graphicsio-ps-2.4-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@ -1,13 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.freehep:freehep-io:2.2.2">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-io/2.2.2/freehep-io-2.2.2.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-io/2.2.2/freehep-io-2.2.2-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-io/2.2.2/freehep-io-2.2.2-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.freehep:freehep-io:2.2.2">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-io/2.2.2/freehep-io-2.2.2.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-io/2.2.2/freehep-io-2.2.2-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-io/2.2.2/freehep-io-2.2.2-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@ -1,13 +1,13 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.freehep:freehep-util:2.0.2">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-util/2.0.2/freehep-util-2.0.2.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-util/2.0.2/freehep-util-2.0.2-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-util/2.0.2/freehep-util-2.0.2-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.freehep:freehep-util:2.0.2">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-util/2.0.2/freehep-util-2.0.2.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-util/2.0.2/freehep-util-2.0.2-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/freehep/freehep-util/2.0.2/freehep-util-2.0.2-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@ -16,14 +16,15 @@
|
||||
<orderEntry type="module" module-name="meteoinfo-ndarray" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-experimental:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-core:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-ddense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-dsparse:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-zdense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-simple:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-fdense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-cdense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-experimental:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-core:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-ddense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-dsparse:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-zdense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-simple:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-fdense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-cdense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-fsparse:0.40" level="project" />
|
||||
<orderEntry type="module" module-name="meteoinfo-geometry" />
|
||||
<orderEntry type="library" name="Maven: org.locationtech.jts:jts-core:1.17.0" level="project" />
|
||||
<orderEntry type="module" module-name="meteoinfo-table" />
|
||||
|
||||
@ -24,14 +24,15 @@
|
||||
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.5.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.mozilla.intl:chardet:1.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-experimental:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-core:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-ddense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-dsparse:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-zdense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-simple:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-fdense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-cdense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-experimental:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-core:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-ddense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-dsparse:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-zdense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-simple:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-fdense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-cdense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-fsparse:0.40" level="project" />
|
||||
<orderEntry type="module" module-name="meteoinfo-geometry" />
|
||||
<orderEntry type="module" module-name="meteoinfo-ui" />
|
||||
<orderEntry type="library" name="Maven: com.toedter:jcalendar:1.4" level="project" />
|
||||
|
||||
@ -24,14 +24,15 @@
|
||||
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.5.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.mozilla.intl:chardet:1.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-experimental:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-core:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-ddense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-dsparse:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-zdense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-simple:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-fdense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-cdense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-experimental:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-core:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-ddense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-dsparse:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-zdense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-simple:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-fdense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-cdense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-fsparse:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-imaging:1.0-alpha1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.formdev:flatlaf-extras:1.1.1" level="project" />
|
||||
<orderEntry type="library" scope="RUNTIME" name="Maven: com.formdev:svgSalamander:1.1.2.4" level="project" />
|
||||
|
||||
@ -27,14 +27,15 @@
|
||||
<orderEntry type="module" module-name="meteoinfo-ndarray" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-experimental:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-core:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-ddense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-dsparse:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-zdense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-simple:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-fdense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-cdense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-experimental:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-core:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-ddense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-dsparse:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-zdense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-simple:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-fdense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-cdense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-fsparse:0.40" level="project" />
|
||||
<orderEntry type="module" module-name="meteoinfo-geometry" />
|
||||
<orderEntry type="library" name="Maven: org.locationtech.jts:jts-core:1.17.0" level="project" />
|
||||
<orderEntry type="module" module-name="meteoinfo-table" />
|
||||
|
||||
@ -1,11 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<MeteoInfo File="milconfig.xml" Type="configurefile">
|
||||
<Path OpenPath="D:\Working\MIScript\Jython\mis\io\geotiff">
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\satellite\trmm"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\satellite"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\chart"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\hdf"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\grads"/>
|
||||
<Path OpenPath="D:\Working\MIScript\Jython\mis\common_math\interpolate">
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\toolbox"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\toolbox\miml"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\toolbox\miml\cluster"/>
|
||||
@ -13,22 +8,27 @@
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\array"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\map\geoshow"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\map"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\geotiff"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\linalg"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\wind"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\interpolate"/>
|
||||
</Path>
|
||||
<File>
|
||||
<OpenedFiles>
|
||||
<OpenedFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\contourf_1.py"/>
|
||||
<OpenedFile File="D:\Working\MIScript\Jython\mis\toolbox\miml\deep_learning\classification\moon.py"/>
|
||||
<OpenedFile File="D:\Working\MIScript\Jython\mis\toolbox\miml\cluster\xmeans_1.py"/>
|
||||
<OpenedFile File="D:\Working\MIScript\Jython\mis\array\flat.py"/>
|
||||
<OpenedFile File="D:\Working\MIScript\Jython\mis\common_math\interpolate\griddata_kriging.py"/>
|
||||
</OpenedFiles>
|
||||
<RecentFiles>
|
||||
<RecentFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\contourf_1.py"/>
|
||||
<RecentFile File="D:\Working\MIScript\Jython\mis\toolbox\miml\deep_learning\classification\moon.py"/>
|
||||
<RecentFile File="D:\Working\MIScript\Jython\mis\toolbox\miml\cluster\xmeans_1.py"/>
|
||||
<RecentFile File="D:\Working\MIScript\Jython\mis\array\flat.py"/>
|
||||
<RecentFile File="D:\Working\MIScript\Jython\mis\common_math\interpolate\griddata_kriging.py"/>
|
||||
</RecentFiles>
|
||||
</File>
|
||||
<Font>
|
||||
@ -36,5 +36,5 @@
|
||||
</Font>
|
||||
<LookFeel DockWindowDecorated="true" LafDecorated="true" Name="FlatDarkLaf"/>
|
||||
<Figure DoubleBuffering="true"/>
|
||||
<Startup MainFormLocation="-7,0" MainFormSize="1440,824"/>
|
||||
<Startup MainFormLocation="-7,-7" MainFormSize="1293,693"/>
|
||||
</MeteoInfo>
|
||||
|
||||
Binary file not shown.
@ -24,14 +24,18 @@ class interp1d(object):
|
||||
:param x: (*array_like*) A 1-D array of real values.
|
||||
:param y: (*array_like*) A 1-D array of real values. The length of y must be equal to the length of x.
|
||||
:param kind: (*boolean*) Specifies the kind of interpolation as a string (‘linear’,
|
||||
‘cubic’,‘akima’,‘divided’,‘loess’,‘neville’). Default is ‘linear’.
|
||||
‘cubic’,‘akima’,‘divided’,‘loess’,‘neville’,'kriging'). Default is ‘linear’.
|
||||
'''
|
||||
def __init__(self, x, y, kind='linear'):
|
||||
def __init__(self, x, y, kind='linear', **kwargs):
|
||||
if isinstance(x, list):
|
||||
x = np.array(x)
|
||||
if isinstance(y, list):
|
||||
y = np.array(y)
|
||||
self._func = InterpUtil.getInterpFunc(x.asarray(), y.asarray(), kind)
|
||||
if kind == 'kriging':
|
||||
beta = kwargs.pop('beta', 1.5)
|
||||
self._func = InterpUtil.getKriging1D(x.asarray(), y.asarray(), beta)
|
||||
else:
|
||||
self._func = InterpUtil.getInterpFunc(x.asarray(), y.asarray(), kind)
|
||||
|
||||
def __call__(self, x):
|
||||
'''
|
||||
@ -278,6 +282,9 @@ def griddata(points, values, xi=None, **kwargs):
|
||||
return NDArray(r[0]), x_g, y_g, NDArray(r[1])
|
||||
elif method == 'surface':
|
||||
r = InterpUtil.interpolation_Surface(x_s.asarray(), y_s.asarray(), values, x_g.asarray(), y_g.asarray())
|
||||
elif method == 'kriging':
|
||||
beta = kwargs.pop('beta', 1.5)
|
||||
r = InterpUtil.gridDataKriging(x_s.asarray(), y_s.asarray(), values, x_g.asarray(), y_g.asarray(), beta)
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
@ -17,14 +17,15 @@
|
||||
<orderEntry type="module" module-name="meteoinfo-ndarray" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-experimental:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-core:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-ddense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-dsparse:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-zdense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-simple:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-fdense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-cdense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-experimental:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-core:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-ddense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-dsparse:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-zdense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-simple:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-fdense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-cdense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-fsparse:0.40" level="project" />
|
||||
<orderEntry type="module" module-name="meteoinfo-geometry" />
|
||||
<orderEntry type="library" name="Maven: org.locationtech.jts:jts-core:1.17.0" level="project" />
|
||||
<orderEntry type="module" module-name="meteoinfo-table" />
|
||||
|
||||
@ -23,13 +23,14 @@
|
||||
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.5.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.mozilla.intl:chardet:1.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-experimental:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-core:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-ddense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-dsparse:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-zdense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-simple:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-fdense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-cdense:0.32" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-experimental:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-core:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-ddense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-dsparse:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-zdense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-simple:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-fdense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-cdense:0.40" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ejml:ejml-fsparse:0.40" level="project" />
|
||||
</component>
|
||||
</module>
|
||||
@ -30,12 +30,12 @@
|
||||
<dependency>
|
||||
<groupId>org.ejml</groupId>
|
||||
<artifactId>ejml-experimental</artifactId>
|
||||
<version>0.32</version>
|
||||
<version>0.40</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.ejml</groupId>
|
||||
<artifactId>ejml-simple</artifactId>
|
||||
<version>0.32</version>
|
||||
<version>0.40</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
@ -0,0 +1,25 @@
|
||||
package org.meteoinfo.math;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public interface Function extends Serializable {
|
||||
/**
|
||||
* Computes the value of the function at x.
|
||||
*
|
||||
* @param x a real number.
|
||||
* @return the function value.
|
||||
*/
|
||||
double f(double x);
|
||||
|
||||
/**
|
||||
* Computes the value of the function at x.
|
||||
* It delegates the computation to f().
|
||||
* This is simply for Scala convenience.
|
||||
*
|
||||
* @param x a real number.
|
||||
* @return the function value.
|
||||
*/
|
||||
default double apply(double x) {
|
||||
return f(x);
|
||||
}
|
||||
}
|
||||
@ -82,6 +82,21 @@ public class InterpUtil {
|
||||
return psf;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Kriging interpolation 1D class
|
||||
* @param x X array
|
||||
* @param y Y array
|
||||
* @param beta Beta value
|
||||
* @return Kriging interpolation 1D class
|
||||
*/
|
||||
public static KrigingInterpolation1D getKriging1D(Array x, Array y, double beta) {
|
||||
double[] xd = (double[]) ArrayUtil.copyToNDJavaArray_Double(x);
|
||||
double[] yd = (double[]) ArrayUtil.copyToNDJavaArray_Double(y);
|
||||
KrigingInterpolation1D krigingInterpolation1D = new KrigingInterpolation1D(xd, yd, beta);
|
||||
|
||||
return krigingInterpolation1D;
|
||||
}
|
||||
|
||||
/**
|
||||
* Make interpolation function for grid data
|
||||
*
|
||||
@ -137,6 +152,34 @@ public class InterpUtil {
|
||||
return func.value(x.doubleValue());
|
||||
}
|
||||
|
||||
/**
|
||||
* Compute the value of the function
|
||||
*
|
||||
* @param func The function
|
||||
* @param x Input data
|
||||
* @return Function value
|
||||
*/
|
||||
public static double evaluate(KrigingInterpolation1D func, Number x) {
|
||||
return func.interpolate(x.doubleValue());
|
||||
}
|
||||
|
||||
/**
|
||||
* Compute the value of the function
|
||||
*
|
||||
* @param func The function
|
||||
* @param x Input data
|
||||
* @return Function value
|
||||
*/
|
||||
public static Array evaluate(KrigingInterpolation1D func, Array x) {
|
||||
Array r = Array.factory(DataType.DOUBLE, x.getShape());
|
||||
IndexIterator xIter = x.getIndexIterator();
|
||||
for (int i = 0; i < r.getSize(); i++) {
|
||||
r.setDouble(i, func.interpolate(xIter.getDoubleNext()));
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compute the value of the function
|
||||
*
|
||||
@ -1931,4 +1974,47 @@ public class InterpUtil {
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
/**
|
||||
* Interpolation with Kriging2D method
|
||||
*
|
||||
* @param x_s scatter X array
|
||||
* @param y_s scatter Y array
|
||||
* @param a scatter value array
|
||||
* @param X grid X array
|
||||
* @param Y grid Y array
|
||||
* @param beta Beta
|
||||
* @return interpolated grid data
|
||||
*/
|
||||
public static Array gridDataKriging(Array x_s, Array y_s, Array a,
|
||||
Array X, Array Y, double beta) {
|
||||
X = X.copyIfView();
|
||||
Y = Y.copyIfView();
|
||||
double[] xd = (double[]) ArrayUtil.copyToNDJavaArray_Double(x_s);
|
||||
double[] yd = (double[]) ArrayUtil.copyToNDJavaArray_Double(y_s);
|
||||
double[] ad = (double[]) ArrayUtil.copyToNDJavaArray_Double(a);
|
||||
|
||||
int rowNum, colNum, pNum;
|
||||
colNum = (int)X.getSize();
|
||||
rowNum = (int)Y.getSize();
|
||||
pNum = (int)x_s.getSize();
|
||||
Array r = Array.factory(DataType.DOUBLE, new int[]{rowNum, colNum});
|
||||
int i, j;
|
||||
double w, gx, gy, v;
|
||||
boolean match;
|
||||
|
||||
//Construct Kriging2D interpolation
|
||||
KrigingInterpolation2D ki2d = new KrigingInterpolation2D(xd, yd, ad, beta);
|
||||
|
||||
//---- Do interpolation
|
||||
for (i = 0; i < rowNum; i++) {
|
||||
gy = Y.getDouble(i);
|
||||
for (j = 0; j < colNum; j++) {
|
||||
gx = X.getDouble(j);
|
||||
r.setDouble(i * colNum + j, ki2d.interpolate(gx, gy));
|
||||
}
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright (c) 2010-2020 Haifeng Li. All rights reserved.
|
||||
*
|
||||
* Smile is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* Smile is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Smile. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.meteoinfo.math.interpolate;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* In numerical analysis, interpolation is a method of constructing new data
|
||||
* points within the range of a discrete set of known data points.
|
||||
* In engineering and science one often has a number of data points, as
|
||||
* obtained by sampling or experimentation, and tries to construct a function
|
||||
* which closely fits those data points. This is called curve fitting or
|
||||
* regression analysis. Interpolation is a specific case of curve fitting,
|
||||
* in which the function must go exactly through the data points.
|
||||
*
|
||||
* @author Haifeng Li
|
||||
*/
|
||||
public interface Interpolation extends Serializable {
|
||||
|
||||
/**
|
||||
* Given a value x, return an interpolated value.
|
||||
*
|
||||
* @param x a real number.
|
||||
* @return the interpolated function value.
|
||||
*/
|
||||
double interpolate(double x);
|
||||
}
|
||||
@ -0,0 +1,37 @@
|
||||
/*
|
||||
* Copyright (c) 2010-2020 Haifeng Li. All rights reserved.
|
||||
*
|
||||
* Smile is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* Smile is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Smile. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.meteoinfo.math.interpolate;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* Interpolation of 2-dimensional data.
|
||||
*
|
||||
* @author Haifeng Li
|
||||
*/
|
||||
public interface Interpolation2D extends Serializable {
|
||||
|
||||
/**
|
||||
* Interpolate the data at a given 2-dimensional point.
|
||||
*
|
||||
* @param x1 the 1st dimension value.
|
||||
* @param x2 the 2nd dimension value.
|
||||
* @return the interpolated function value.
|
||||
*/
|
||||
double interpolate(double x1, double x2);
|
||||
}
|
||||
@ -0,0 +1,176 @@
|
||||
/*
|
||||
* Copyright (c) 2010-2020 Haifeng Li. All rights reserved.
|
||||
*
|
||||
* Smile is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* Smile is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Smile. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.meteoinfo.math.interpolate;
|
||||
|
||||
import org.apache.commons.math3.linear.*;
|
||||
import org.meteoinfo.math.interpolate.variogram.PowerVariogram;
|
||||
import org.meteoinfo.math.interpolate.variogram.Variogram;
|
||||
|
||||
/**
|
||||
* Kriging interpolation for the data points irregularly distributed in space.
|
||||
* Kriging belongs to the family of linear least squares estimation algorithms,
|
||||
* also known as Gauss-Markov estimation or Gaussian process regression.
|
||||
* <p>
|
||||
* Kriging can be either an interpolation method or a fitting method. The distinction
|
||||
* between the two is whether the fitted/interpolated function goes exactly
|
||||
* through all the input data points (interpolation), or whether it allows
|
||||
* measurement errors to be specified and then "smooths" to get a statistically
|
||||
* better predictor that does not generally go through the data points.
|
||||
* <p>
|
||||
* The aim of kriging is to estimate the value of an unknown real-valued
|
||||
* function, f, at a point, x, given the values of the function at some
|
||||
* other points, x<sub>1</sub>,…, x<sub>n</sub>. Kriging computes the
|
||||
* best linear unbiased estimator based on a stochastic model of the spatial
|
||||
* dependence quantified either by the variogram γ(x,y) or by expectation
|
||||
* μ(x) = E[f(x)] and the covariance function c(x,y) of the random field.
|
||||
* A kriging estimator is a linear combination that may be written as
|
||||
* <p>
|
||||
* ƒ(x) = Σ λ<sub>i</sub>(x) f(x<sub>i</sub>)
|
||||
* <p>
|
||||
* The weights λ<sub>i</sub> are solutions of a system of linear
|
||||
* equations which is obtained by assuming that f is a sample-path of a
|
||||
* random process F(x), and that the error of prediction
|
||||
* <p>
|
||||
* ε(x) = F(x) - Σ λ<sub>i</sub>(x) F(x<sub>i</sub>)
|
||||
* <p>
|
||||
* is to be minimized in some sense.
|
||||
* <p>
|
||||
* Depending on the stochastic properties of the random field different
|
||||
* types of kriging apply. The type of kriging determines the linear
|
||||
* constraint on the weights λ<sub>i</sub> implied by the unbiasedness
|
||||
* condition; i.e. the linear constraint, and hence the method for calculating
|
||||
* the weights, depends upon the type of kriging.
|
||||
* <p>
|
||||
* This class implements ordinary kriging, which is the most commonly used type
|
||||
* of kriging. The typical assumptions for the practical application of ordinary
|
||||
* kriging are:
|
||||
* <ul>
|
||||
* <li> Intrinsic stationarity or wide sense stationarity of the field
|
||||
* <li> enough observations to estimate the variogram.
|
||||
* </ul>
|
||||
* The mathematical condition for applicability of ordinary kriging are:
|
||||
* <ul>
|
||||
* <li> The mean E[f(x)] = μ is unknown but constant
|
||||
* <li> The variogram γ(x,y) = E[(f(x) - f(y))<sup>2</sup>] of f(x) is known.
|
||||
* </ul>
|
||||
* The kriging weights of ordinary kriging fulfill the unbiasedness condition
|
||||
* Σ λ<sub>i</sub> = 1
|
||||
*
|
||||
* @author Haifeng Li
|
||||
*/
|
||||
public class KrigingInterpolation {
|
||||
|
||||
/** The control points. */
|
||||
private final double[][] x;
|
||||
/** The variogram. */
|
||||
private final Variogram variogram;
|
||||
/** The linear weights. */
|
||||
private final double[] yvi;
|
||||
|
||||
/**
|
||||
* Constructor. The power variogram is employed. We assume no errors,
|
||||
* i.e. we are doing interpolation rather fitting.
|
||||
*
|
||||
* @param x the data points.
|
||||
* @param y the function values at <code>x</code>.
|
||||
*/
|
||||
public KrigingInterpolation(double[][] x, double[] y) {
|
||||
this(x, y, new PowerVariogram(x, y), null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param x the data points.
|
||||
* @param y the function values at <code>x</code>.
|
||||
* @param variogram the variogram function of offset distance to estimate
|
||||
* the mean square variation of function y(x).
|
||||
* @param error the measure error associated with y. It is the sqrt of diagonal
|
||||
* elements of covariance matrix.
|
||||
*/
|
||||
public KrigingInterpolation(double[][] x, double[] y, Variogram variogram, double[] error) {
|
||||
this.x = x;
|
||||
this.variogram = variogram;
|
||||
|
||||
int n = x.length;
|
||||
double[] yv = new double[n + 1];
|
||||
|
||||
RealMatrix v = new Array2DRowRealMatrix(n + 1, n + 1);
|
||||
for (int i = 0; i < n; i++) {
|
||||
yv[i] = y[i];
|
||||
|
||||
for (int j = i; j < n; j++) {
|
||||
double var = variogram.f(rdist(x[i], x[j]));
|
||||
v.setEntry(i, j, var);
|
||||
v.setEntry(j, i, var);
|
||||
}
|
||||
v.setEntry(n, i, 1.0);
|
||||
v.setEntry(i, n, 1.0);
|
||||
}
|
||||
|
||||
yv[n] = 0.0;
|
||||
v.setEntry(n, n, 0.0);
|
||||
|
||||
if (error != null) {
|
||||
for (int i = 0; i < n; i++) {
|
||||
v.setEntry(i, i, v.getEntry(i, i) - error[i] * error[i]);
|
||||
}
|
||||
}
|
||||
|
||||
DecompositionSolver solver = new SingularValueDecomposition(v).getSolver();
|
||||
RealVector constants = new ArrayRealVector(yv, false);
|
||||
RealVector solution = solver.solve(constants);
|
||||
yvi = solution.toArray();
|
||||
}
|
||||
|
||||
/**
|
||||
* Interpolate the function at given point.
|
||||
* @param x a point.
|
||||
* @return the interpolated function value.
|
||||
*/
|
||||
public double interpolate(double... x) {
|
||||
if (x.length != this.x[0].length) {
|
||||
throw new IllegalArgumentException(String.format("Invalid input vector size: %d, expected: %d", x.length, this.x[0].length));
|
||||
}
|
||||
|
||||
int n = this.x.length;
|
||||
double y = yvi[n];
|
||||
for (int i = 0; i < n; i++) {
|
||||
y += yvi[i] * variogram.f(rdist(x, this.x[i]));
|
||||
}
|
||||
|
||||
return y;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cartesian distance.
|
||||
*/
|
||||
private double rdist(double[] x1, double[] x2) {
|
||||
double d = 0.0;
|
||||
for (int i = 0; i < x1.length; i++) {
|
||||
double t = x1[i] - x2[i];
|
||||
d += t * t;
|
||||
}
|
||||
return Math.sqrt(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("Kriging Interpolation(%s)", variogram);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,136 @@
|
||||
/*
|
||||
* Copyright (c) 2010-2020 Haifeng Li. All rights reserved.
|
||||
*
|
||||
* Smile is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* Smile is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Smile. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.meteoinfo.math.interpolate;
|
||||
|
||||
import org.apache.commons.math3.linear.*;
|
||||
import org.meteoinfo.math.MathEx;
|
||||
|
||||
/**
|
||||
* Kriging interpolation for the data points irregularly distributed in space.
|
||||
* Kriging belongs to the family of linear least squares estimation algorithms,
|
||||
* also known as Gauss-Markov estimation or Gaussian process regression.
|
||||
* This class implements ordinary kriging for interpolation with power variogram.
|
||||
*
|
||||
* @author Haifeng Li
|
||||
*/
|
||||
public class KrigingInterpolation1D implements Interpolation {
|
||||
|
||||
/** The control points. */
|
||||
private final double[] x;
|
||||
/** The linear weights. */
|
||||
private final double[] yvi;
|
||||
/** The parameter of power variogram. */
|
||||
private final double alpha;
|
||||
/** The parameter of power variogram. */
|
||||
private final double beta;
|
||||
|
||||
/**
|
||||
* Constructor. The power variogram is employed for interpolation.
|
||||
*
|
||||
* @param x the tabulated points.
|
||||
* @param y the function values at <code>x</code>.
|
||||
*/
|
||||
public KrigingInterpolation1D(double[] x, double[] y) {
|
||||
this(x, y, 1.5);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor. The power variogram is employed for interpolation.
|
||||
*
|
||||
* @param x the tabulated points.
|
||||
* @param y the function values at <code>x</code>.
|
||||
* @param beta the parameter of power variogram. The value of β
|
||||
* should be in the range {@code 1 <=} β {@code < 2}.
|
||||
* A good general choice is 1.5, but for functions with
|
||||
* a strong linear trend, we may experiment with values as
|
||||
* large as 1.99.
|
||||
*/
|
||||
public KrigingInterpolation1D(double[] x, double[] y, double beta) {
|
||||
if (beta < 1.0 || beta >= 2.0) {
|
||||
throw new IllegalArgumentException("Invalid beta: " + beta);
|
||||
}
|
||||
|
||||
if (x.length != y.length) {
|
||||
throw new IllegalArgumentException("x.length != y.length");
|
||||
}
|
||||
|
||||
this.x = x;
|
||||
this.beta = beta;
|
||||
this.alpha = pow(x, y);
|
||||
|
||||
int n = x.length;
|
||||
double[] yv = new double[n + 1];
|
||||
|
||||
RealMatrix v = new Array2DRowRealMatrix(n + 1, n + 1);
|
||||
//v.uplo(UPLO.LOWER);
|
||||
for (int i = 0; i < n; i++) {
|
||||
yv[i] = y[i];
|
||||
|
||||
for (int j = i; j < n; j++) {
|
||||
double var = variogram(Math.abs(x[i] - x[j]));
|
||||
v.setEntry(i, j, var);
|
||||
v.setEntry(j, i, var);
|
||||
}
|
||||
v.setEntry(n, i, 1.0);
|
||||
v.setEntry(i, n, 1.0);
|
||||
}
|
||||
|
||||
yv[n] = 0.0;
|
||||
v.setEntry(n, n, 0.0);
|
||||
|
||||
DecompositionSolver solver = new SingularValueDecomposition(v).getSolver();
|
||||
RealVector constants = new ArrayRealVector(yv, false);
|
||||
RealVector solution = solver.solve(constants);
|
||||
yvi = solution.toArray();
|
||||
}
|
||||
|
||||
@Override
|
||||
public double interpolate(double x) {
|
||||
int n = this.x.length;
|
||||
double y = yvi[n];
|
||||
for (int i = 0; i < n; i++) {
|
||||
y += yvi[i] * variogram(Math.abs(x - this.x[i]));
|
||||
}
|
||||
return y;
|
||||
}
|
||||
|
||||
private double pow(double[] x, double[] y) {
|
||||
int n = x.length;
|
||||
|
||||
double num = 0.0, denom = 0.0;
|
||||
for (int i = 0; i < n; i++) {
|
||||
for (int j = i + 1; j < n; j++) {
|
||||
double rb = MathEx.pow2(x[i] - x[j]);
|
||||
rb = Math.pow(rb, 0.5 * beta);
|
||||
num += rb * 0.5 * MathEx.pow2(y[i] - y[j]);
|
||||
denom += rb * rb;
|
||||
}
|
||||
}
|
||||
|
||||
return num / denom;
|
||||
}
|
||||
|
||||
private double variogram(double r) {
|
||||
return alpha * Math.pow(r, beta);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Kriging Interpolation";
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,155 @@
|
||||
/*
|
||||
* Copyright (c) 2010-2020 Haifeng Li. All rights reserved.
|
||||
*
|
||||
* Smile is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* Smile is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Smile. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.meteoinfo.math.interpolate;
|
||||
|
||||
import org.apache.commons.math3.linear.*;
|
||||
import org.meteoinfo.math.MathEx;
|
||||
|
||||
/**
|
||||
* Kriging interpolation for the data points irregularly distributed in space.
|
||||
* Kriging belongs to the family of linear least squares estimation algorithms,
|
||||
* also known as Gauss-Markov estimation or Gaussian process regression.
|
||||
* This class implements ordinary kriging for interpolation with power variogram.
|
||||
*
|
||||
* @author Haifeng Li
|
||||
*/
|
||||
public class KrigingInterpolation2D implements Interpolation2D {
|
||||
|
||||
/** The first dimension of tabulated control points. */
|
||||
private final double[] x1;
|
||||
/** The second dimension of tabulated control points. */
|
||||
private final double[] x2;
|
||||
/** The linear weights. */
|
||||
private final double[] yvi;
|
||||
/** The parameter of power variogram. */
|
||||
private final double alpha;
|
||||
/** The parameter of power variogram. */
|
||||
private final double beta;
|
||||
|
||||
/**
|
||||
* Constructor. The power variogram is employed for interpolation.
|
||||
* @param x1 the 1st dimension of data points.
|
||||
* @param x2 the 2nd dimension of data points.
|
||||
* @param y the function values at <code>(x1, x2)</code>.
|
||||
*/
|
||||
public KrigingInterpolation2D(double[] x1, double[] x2, double[] y) {
|
||||
this(x1, x2, y, 1.5);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor. The power variogram is employed for interpolation.
|
||||
* @param x1 the 1st dimension of data points.
|
||||
* @param x2 the 2nd dimension of data points.
|
||||
* @param y the function values at <code>(x1, x2)</code>.
|
||||
* @param beta the parameter of power variogram. The value of β
|
||||
* should be in the range {@code 1 <=} β {@code < 2}.
|
||||
* A good general choice is 1.5, but for functions with
|
||||
* a strong linear trend, we may experiment with values as
|
||||
* large as 1.99.
|
||||
*/
|
||||
public KrigingInterpolation2D(double[] x1, double[] x2, double[] y, double beta) {
|
||||
if (beta < 1.0 || beta >= 2.0) {
|
||||
throw new IllegalArgumentException("Invalid beta: " + beta);
|
||||
}
|
||||
|
||||
if (x1.length != x2.length) {
|
||||
throw new IllegalArgumentException("x1.length != x2.length");
|
||||
}
|
||||
|
||||
if (x1.length != y.length) {
|
||||
throw new IllegalArgumentException("x.length != y.length");
|
||||
}
|
||||
|
||||
this.x1 = x1;
|
||||
this.x2 = x2;
|
||||
this.beta = beta;
|
||||
this.alpha = pow(x1, x2, y);
|
||||
|
||||
int n = x1.length;
|
||||
double[] yv = new double[n + 1];
|
||||
|
||||
RealMatrix v = new Array2DRowRealMatrix(n + 1, n + 1);
|
||||
//v.uplo(UPLO.LOWER);
|
||||
for (int i = 0; i < n; i++) {
|
||||
yv[i] = y[i];
|
||||
|
||||
for (int j = i; j < n; j++) {
|
||||
double d1 = x1[i] - x1[j];
|
||||
double d2 = x2[i] - x2[j];
|
||||
double d = d1 * d1 + d2 * d2;
|
||||
|
||||
double var = variogram(d);
|
||||
v.setEntry(i, j, var);
|
||||
v.setEntry(j, i, var);
|
||||
}
|
||||
v.setEntry(n, i, 1.0);
|
||||
v.setEntry(i, n, 1.0);
|
||||
}
|
||||
|
||||
yv[n] = 0.0;
|
||||
v.setEntry(n, n, 0.0);
|
||||
|
||||
DecompositionSolver solver = new SingularValueDecomposition(v).getSolver();
|
||||
RealVector constants = new ArrayRealVector(yv, false);
|
||||
RealVector solution = solver.solve(constants);
|
||||
yvi = solution.toArray();
|
||||
}
|
||||
|
||||
@Override
|
||||
public double interpolate(double x1, double x2) {
|
||||
int n = this.x1.length;
|
||||
double y = yvi[n];
|
||||
for (int i = 0; i < n; i++) {
|
||||
double d1 = x1 - this.x1[i];
|
||||
double d2 = x2 - this.x2[i];
|
||||
double d = d1 * d1 + d2 * d2;
|
||||
|
||||
y += yvi[i] * variogram(d);
|
||||
}
|
||||
|
||||
return y;
|
||||
}
|
||||
|
||||
private double pow(double[] x1, double[] x2, double[] y) {
|
||||
int n = x1.length;
|
||||
|
||||
double num = 0.0, denom = 0.0;
|
||||
for (int i = 0; i < n; i++) {
|
||||
for (int j = i + 1; j < n; j++) {
|
||||
double d1 = x1[i] - x1[j];
|
||||
double d2 = x2[i] - x2[j];
|
||||
double d = d1 * d1 + d2 * d2;
|
||||
|
||||
double rb = Math.pow(d, beta/2);
|
||||
num += rb * 0.5 * MathEx.pow2(y[i] - y[j]);
|
||||
denom += rb * rb;
|
||||
}
|
||||
}
|
||||
|
||||
return num / denom;
|
||||
}
|
||||
|
||||
private double variogram(double r) {
|
||||
return alpha * Math.pow(r, beta/2);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Kriging Interpolation";
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,89 @@
|
||||
/*
|
||||
* Copyright (c) 2010-2020 Haifeng Li. All rights reserved.
|
||||
*
|
||||
* Smile is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* Smile is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Smile. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.meteoinfo.math.interpolate.variogram;
|
||||
|
||||
/**
|
||||
* Exponential variogram.
|
||||
* <p>
|
||||
* v(r) = c + b * (1 - e<sup>-3r/a</sup>)
|
||||
* <p>
|
||||
* where a is the range parameter and b is sill paramter. The distance of two
|
||||
* pairs increase, the variogram of those two pairs also increase. Eventually,
|
||||
* the increase of the distance can not cause the variogram increase. The
|
||||
* distance which cause the variogram reach plateau is called range. The sill
|
||||
* parameter b is the maximum variogram value (by default, we set c = 0).
|
||||
* <p>
|
||||
* The parameter c is the so-called nugget effect. Though the value of the
|
||||
* variogram for h = 0 is strictly 0, several factors, such as sampling error
|
||||
* and short scale variability, may cause sample values separated by extremely
|
||||
* small distances to be quite dissimilar. This causes a discontinuity at the
|
||||
* origin of the variogram. The vertical jump from the value of 0 at the origin
|
||||
* to the value of the variogram at extremely small separation distances is
|
||||
* called the nugget effect.
|
||||
*
|
||||
* @author Haifeng Li
|
||||
*/
|
||||
public class ExponentialVariogram implements Variogram {
|
||||
|
||||
/** The range parameter. */
|
||||
private final double a;
|
||||
/** The sill parameter. */
|
||||
private final double b;
|
||||
/** The nugget effect parameter. */
|
||||
private final double c;
|
||||
|
||||
/**
|
||||
* Constructor. No nugget effect.
|
||||
* @param a the range parameter.
|
||||
* @param b the sill parameter.
|
||||
*/
|
||||
public ExponentialVariogram(double a, double b) {
|
||||
this(a, b, 0.0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
* @param a the range parameter.
|
||||
* @param b the sill parameter.
|
||||
* @param c the nugget effect parameter.
|
||||
*/
|
||||
public ExponentialVariogram(double a, double b, double c) {
|
||||
if (a <= 0)
|
||||
throw new IllegalArgumentException("Invalid parameter a = " + a);
|
||||
|
||||
if (b <= 0)
|
||||
throw new IllegalArgumentException("Invalid parameter b = " + b);
|
||||
|
||||
if (c < 0)
|
||||
throw new IllegalArgumentException("Invalid parameter c = " + c);
|
||||
|
||||
this.a = a;
|
||||
this.b = b;
|
||||
this.c = c;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double f(double r) {
|
||||
return c + b * (1 - Math.exp(-3.0*r/a));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("Exponential Variogram(range = %.4f, sill = %.4f, nugget effect = %.4f)", a, b, c);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,90 @@
|
||||
/*
|
||||
* Copyright (c) 2010-2020 Haifeng Li. All rights reserved.
|
||||
*
|
||||
* Smile is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* Smile is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Smile. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.meteoinfo.math.interpolate.variogram;
|
||||
|
||||
import org.meteoinfo.math.MathEx;
|
||||
|
||||
/**
|
||||
* Gaussian variogram.
|
||||
* <p>
|
||||
* v(r) = c + b * (1 - exp(-3r<sup>2</sup>/a<sup>2</sup>))
|
||||
* <p>
|
||||
* where a is the range parameter and b is sill parameter. The distance of two
|
||||
* pairs increase, the variogram of those two pairs also increase. Eventually,
|
||||
* the increase of the distance can not cause the variogram increase. The
|
||||
* distance which cause the variogram reach plateau is called range. The sill
|
||||
* parameter b is the maximum variogram value (by default, we set c = 0).
|
||||
* <p>
|
||||
* The parameter c is the so-called nugget effect. Though the value of the
|
||||
* variogram for h = 0 is strictly 0, several factors, such as sampling error
|
||||
* and short scale variability, may cause sample values separated by extremely
|
||||
* small distances to be quite dissimilar. This causes a discontinuity at the
|
||||
* origin of the variogram. The vertical jump from the value of 0 at the origin
|
||||
* to the value of the variogram at extremely small separation distances is
|
||||
* called the nugget effect.
|
||||
*
|
||||
* @author Haifeng Li
|
||||
*/
|
||||
public class GaussianVariogram implements Variogram {
|
||||
/** The range parameter. */
|
||||
private final double a;
|
||||
/** The sill parameter. */
|
||||
private final double b;
|
||||
/** The nugget effect parameter. */
|
||||
private final double c;
|
||||
|
||||
/**
|
||||
* Constructor. No nugget effect.
|
||||
* @param a the range parameter.
|
||||
* @param b the sill parameter.
|
||||
*/
|
||||
public GaussianVariogram(double a, double b) {
|
||||
this(a, b, 0.0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
* @param a the range parameter.
|
||||
* @param b the sill parameter.
|
||||
* @param c the nugget effect parameter.
|
||||
*/
|
||||
public GaussianVariogram(double a, double b, double c) {
|
||||
if (a <= 0)
|
||||
throw new IllegalArgumentException("Invalid parameter a = " + a);
|
||||
|
||||
if (b <= 0)
|
||||
throw new IllegalArgumentException("Invalid parameter b = " + b);
|
||||
|
||||
if (c < 0)
|
||||
throw new IllegalArgumentException("Invalid parameter c = " + c);
|
||||
|
||||
this.a = a;
|
||||
this.b = b;
|
||||
this.c = c;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double f(double r) {
|
||||
return c + b * (1 - Math.exp(-3.0* MathEx.pow2(r/a)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("Gaussian Variogram(range = %.4f, sill = %.4f, nugget effect = %.4f)", a, b, c);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,120 @@
|
||||
/*
|
||||
* Copyright (c) 2010-2020 Haifeng Li. All rights reserved.
|
||||
*
|
||||
* Smile is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* Smile is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Smile. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.meteoinfo.math.interpolate.variogram;
|
||||
|
||||
import org.meteoinfo.math.MathEx;
|
||||
|
||||
/**
|
||||
* Power variogram.
|
||||
* <p>
|
||||
* v(r) = c + α r<sup>β</sup>
|
||||
* <p>
|
||||
* where β is fixed and α is fitted by unweighted least squares
|
||||
* over all pairs of data points. The value of β should be in the range
|
||||
* {@code 1 <=} β {@code < 2}. A good general choice is 1.5, but for
|
||||
* functions with a strong linear trend, we may experiment with values as
|
||||
* large as 1.99.
|
||||
* <p>
|
||||
* The parameter c is the so-called nugget effect. Though the value of the
|
||||
* variogram for <code>h = 0</code> is strictly 0, several factors, such as
|
||||
* sampling error and short scale variability, may cause sample values separated
|
||||
* by extremely small distances to be quite dissimilar. This causes a discontinuity
|
||||
* at the origin of the variogram. The vertical jump from the value of 0 at the
|
||||
* origin to the value of the variogram at extremely small separation distances is
|
||||
* called the nugget effect.
|
||||
*
|
||||
* @author Haifeng Li
|
||||
*/
|
||||
public class PowerVariogram implements Variogram {
|
||||
|
||||
/** The parameter fitted by unweighted least squares on data points. */
|
||||
private final double alpha;
|
||||
/** The fixed parameter {@code 1 <= beta < 2}. */
|
||||
private final double beta;
|
||||
/** The nugget effect parameter. */
|
||||
private final double nugget;
|
||||
|
||||
/**
|
||||
* Constructor. No nugget effect and β = 1.5 and α will be estimated from x and y.
|
||||
* @param x the training data.
|
||||
* @param y the responsible variable.
|
||||
*/
|
||||
public PowerVariogram(double[][] x, double[] y) {
|
||||
this(x, y, 1.5);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor. No nugget effect and α will be estimated from x and y.
|
||||
* @param x the training data.
|
||||
* @param y the responsible variable.
|
||||
* @param beta the beta parameter {@code 1 <=} β {@code < 2}.
|
||||
*/
|
||||
public PowerVariogram(double[][] x, double[] y, double beta) {
|
||||
this(x, y, beta, 0.0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor. α will be estimated from x and y.
|
||||
* @param x the training data.
|
||||
* @param y the responsible variable.
|
||||
* @param beta the beta parameter {@code 1 <=} β {@code < 2}.
|
||||
* @param nugget the nugget effect parameter. The height of the jump of
|
||||
* the variogram at the discontinuity at the origin.
|
||||
*/
|
||||
public PowerVariogram(double[][] x, double[] y, double beta, double nugget) {
|
||||
if (beta < 1 || beta >= 2) {
|
||||
throw new IllegalArgumentException("Invalid beta = " + beta);
|
||||
}
|
||||
|
||||
if (nugget < 0) {
|
||||
throw new IllegalArgumentException("Invalid nugget effect = " + nugget);
|
||||
}
|
||||
|
||||
this.beta = beta;
|
||||
this.nugget = nugget;
|
||||
|
||||
int n = x.length;
|
||||
int dim = x[0].length;
|
||||
|
||||
double num = 0.0, denom = 0.0;
|
||||
for (int i = 0; i < n; i++) {
|
||||
for (int j = i + 1; j < n; j++) {
|
||||
double rb = 0.0;
|
||||
for (int k = 0; k < dim; k++) {
|
||||
rb += MathEx.pow2(x[i][k] - x[j][k]);
|
||||
}
|
||||
|
||||
rb = Math.pow(rb, 0.5 * beta);
|
||||
num += rb * 0.5 * MathEx.pow2(y[i] - y[j] - nugget);
|
||||
denom += rb * rb;
|
||||
}
|
||||
}
|
||||
|
||||
alpha = num / denom;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double f(double r) {
|
||||
return nugget + alpha * Math.pow(r, beta);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("Power Variogram(range = %.4f, sill = %.4f, nugget effect = %.4f)", alpha, beta, nugget);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,96 @@
|
||||
/*
|
||||
* Copyright (c) 2010-2020 Haifeng Li. All rights reserved.
|
||||
*
|
||||
* Smile is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* Smile is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Smile. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.meteoinfo.math.interpolate.variogram;
|
||||
|
||||
/**
|
||||
* Spherical variogram.
|
||||
* <p>
|
||||
* v(r) = c + b * (1.5 * r / a - 0.5 * (r / a)<sup>3</sup>) for {@code 0 <= r <= a}
|
||||
* <p>
|
||||
* or
|
||||
* <p>
|
||||
* v(r) = c + b for {@code a <= r}
|
||||
* <p>
|
||||
* where a is the range parameter and b is sill parameter. The distance of two
|
||||
* pairs increase, the variogram of those two pairs also increase. Eventually,
|
||||
* the increase of the distance can not cause the variogram increase. The
|
||||
* distance which cause the variogram reach plateau is called range. The sill
|
||||
* parameter b is the maximum variogram value (by default, we set c = 0).
|
||||
* <p>
|
||||
* The parameter c is the so-called nugget effect. Though the value of the
|
||||
* variogram for h = 0 is strictly 0, several factors, such as sampling error
|
||||
* and short scale variability, may cause sample values separated by extremely
|
||||
* small distances to be quite dissimilar. This causes a discontinuity at the
|
||||
* origin of the variogram. The vertical jump from the value of 0 at the origin
|
||||
* to the value of the variogram at extremely small separation distances is
|
||||
* called the nugget effect.
|
||||
*
|
||||
* @author Haifeng Li
|
||||
*/
|
||||
public class SphericalVariogram implements Variogram {
|
||||
/** The range parameter. */
|
||||
private final double a;
|
||||
/** The sill parameter. */
|
||||
private final double b;
|
||||
/** The nugget effect parameter. */
|
||||
private final double c;
|
||||
|
||||
/**
|
||||
* Constructor. No nugget effect.
|
||||
* @param a the range parameter.
|
||||
* @param b the sill parameter.
|
||||
*/
|
||||
public SphericalVariogram(double a, double b) {
|
||||
this(a, b, 0.0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
* @param a the range parameter.
|
||||
* @param b the sill parameter.
|
||||
* @param c the nugget effect parameter.
|
||||
*/
|
||||
public SphericalVariogram(double a, double b, double c) {
|
||||
if (a <= 0)
|
||||
throw new IllegalArgumentException("Invalid parameter a = " + a);
|
||||
|
||||
if (b <= 0)
|
||||
throw new IllegalArgumentException("Invalid parameter b = " + b);
|
||||
|
||||
if (c < 0)
|
||||
throw new IllegalArgumentException("Invalid parameter c = " + c);
|
||||
|
||||
this.a = a;
|
||||
this.b = b;
|
||||
this.c = c;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double f(double r) {
|
||||
if (a <= r)
|
||||
return c + b;
|
||||
|
||||
double p = r / a;
|
||||
return c + b * (1.5 * p - 0.5 * p * p * p);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("Spherical Variogram(range = %.4f, sill = %.4f, nugget effect = %.4f)", a, b, c);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Copyright (c) 2010-2020 Haifeng Li. All rights reserved.
|
||||
*
|
||||
* Smile is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* Smile is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Smile. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.meteoinfo.math.interpolate.variogram;
|
||||
|
||||
import org.meteoinfo.math.Function;
|
||||
|
||||
public interface Variogram extends Function {
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user