@@ -395,6 +395,32 @@ def test_ok_update_variogram_model(validation_ref):
395
395
assert anisotropy_angle != ok .anisotropy_angle
396
396
397
397
398
+ def test_ok_get_variogram_points (validation_ref ):
399
+ # Test to compare the variogram of OK results to those obtained using
400
+ # KT3D_H2O.
401
+ # (M. Karanovic, M. Tonkin, and D. Wilson, 2009, Groundwater,
402
+ # vol. 47, no. 4, 580-586.)
403
+
404
+ # Variogram parameters
405
+ _variogram_parameters = [500.0 , 3000.0 , 0.0 ]
406
+
407
+ data , _ , (ok_test_answer , gridx , gridy ) = validation_ref
408
+
409
+ ok = OrdinaryKriging (data [:, 0 ], data [:, 1 ], data [:, 2 ],
410
+ variogram_model = 'exponential' ,
411
+ variogram_parameters = _variogram_parameters )
412
+
413
+ # Get the variogram points from the UniversalKriging instance
414
+ lags , calculated_variogram = ok .get_variogram_points ()
415
+
416
+ # Generate the expected variogram points according to the
417
+ # exponential variogram model
418
+ expected_variogram = variogram_models .exponential_variogram_model (
419
+ _variogram_parameters , lags )
420
+
421
+ assert_allclose (calculated_variogram , expected_variogram )
422
+
423
+
398
424
def test_ok_execute (sample_data_2d ):
399
425
400
426
data , (gridx , gridy , _ ), mask_ref = sample_data_2d
@@ -544,6 +570,33 @@ def test_uk_update_variogram_model(sample_data_2d):
544
570
assert anisotropy_angle != uk .anisotropy_angle
545
571
546
572
573
+ def test_uk_get_variogram_points (validation_ref ):
574
+ # Test to compare the variogram of UK with linear drift to results from
575
+ # KT3D_H2O.
576
+ # (M. Karanovic, M. Tonkin, and D. Wilson, 2009, Groundwater,
577
+ # vol. 47, no. 4, 580-586.)
578
+
579
+ # Variogram parameters
580
+ _variogram_parameters = [500.0 , 3000.0 , 0.0 ]
581
+
582
+ data , _ , (uk_test_answer , gridx , gridy ) = validation_ref
583
+
584
+ uk = UniversalKriging (data [:, 0 ], data [:, 1 ], data [:, 2 ],
585
+ variogram_model = 'exponential' ,
586
+ variogram_parameters = _variogram_parameters ,
587
+ drift_terms = ['regional_linear' ])
588
+
589
+ # Get the variogram points from the UniversalKriging instance
590
+ lags , calculated_variogram = uk .get_variogram_points ()
591
+
592
+ # Generate the expected variogram points according to the
593
+ # exponential variogram model
594
+ expected_variogram = variogram_models .exponential_variogram_model (
595
+ _variogram_parameters , lags )
596
+
597
+ assert_allclose (calculated_variogram , expected_variogram )
598
+
599
+
547
600
def test_uk_calculate_data_point_zscalars (sample_data_2d ):
548
601
549
602
data , (gridx , gridy , _ ), mask_ref = sample_data_2d
0 commit comments