test.t.rast.mapcalc.operators.sh 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #!/bin/sh
  2. # Test for t.rast.mapcalc
  3. # We need to set a specific region in the
  4. # @preprocess step of this test. We generate
  5. # raster with r.mapcalc and create several space time raster datasets
  6. # The region setting should work for UTM and LL test locations
  7. g.region s=0 n=80 w=0 e=120 b=0 t=50 res=10 res3=10 -p3
  8. r.mapcalc --o expr="prec_1 = rand(0, 550)"
  9. r.mapcalc --o expr="prec_2 = rand(0, 450)"
  10. r.mapcalc --o expr="prec_3 = rand(0, 320)"
  11. r.mapcalc --o expr="prec_4 = rand(0, 510)"
  12. r.mapcalc --o expr="prec_5 = rand(0, 300)"
  13. r.mapcalc --o expr="prec_6 = rand(0, 650)"
  14. t.create --o type=strds temporaltype=absolute output=precip_abs1 title="A test" descr="A test"
  15. t.create --o type=strds temporaltype=absolute output=precip_abs2 title="A test" descr="A test"
  16. t.register -i type=rast input=precip_abs1 maps=prec_1,prec_2,prec_3,prec_4,prec_5,prec_6 start="2001-01-01" increment="3 months"
  17. t.register --o type=rast input=precip_abs2 maps=prec_1,prec_2,prec_3,prec_4,prec_5,prec_6
  18. t.info precip_abs1
  19. t.info precip_abs2
  20. # The first @test
  21. t.rast.mapcalc --o --v -sn inputs=precip_abs1,precip_abs2 output=precip_abs3 \
  22. expression="if(start_time() >= 0 && end_time() >= 0, (precip_abs1*td() + precip_abs2) / td(), null()) " base=new_prec \
  23. method=equal nprocs=5
  24. t.info type=strds input=precip_abs3
  25. t.rast.mapcalc --o --v -sn inputs=precip_abs1,precip_abs2 output=precip_abs3 \
  26. expression="if(start_year()>=0&&start_month()>=0&&start_day()>=0&&start_hour()>=0&&start_minute()>=0&&start_second()>=0, (precip_abs1*td() + precip_abs2) / td(), null()) " base=new_prec \
  27. method=equal nprocs=5
  28. t.info type=strds input=precip_abs3
  29. t.rast.mapcalc --o --v -sn inputs=precip_abs1,precip_abs2 output=precip_abs3 \
  30. expression="if(end_year()>=0&&end_month()>=0&&end_day()>=0&&end_hour()>=0&&end_minute()>=0&&end_second()>=0, (precip_abs1*td() + precip_abs2) / td(), null()) " base=new_prec \
  31. method=equal nprocs=5
  32. t.info type=strds input=precip_abs3
  33. # The first @test
  34. t.rast.mapcalc --o --v -sn inputs=precip_abs1,precip_abs2 output=precip_abs3 \
  35. expression="if(start_doy() >= 0 && start_dow() >= 0, (precip_abs1*td() + precip_abs2) / td(), null()) " base=new_prec \
  36. method=equal nprocs=5
  37. t.info type=strds input=precip_abs3
  38. # The first @test
  39. t.rast.mapcalc --o --v -sn inputs=precip_abs1,precip_abs2 output=precip_abs3 \
  40. expression="if(end_doy() >= 0 && end_dow() >= 0, (precip_abs1*td() + precip_abs2) / td(), null()) " base=new_prec \
  41. method=equal nprocs=5
  42. t.info type=strds input=precip_abs3
  43. # @postprocess
  44. t.unregister type=rast maps=prec_1,prec_2,prec_3,prec_4,prec_5,prec_6
  45. t.unregister type=rast maps=new_prec_1,new_prec_2,new_prec_3,new_prec_4,new_prec_5,new_prec_6
  46. t.remove type=strds input=precip_abs1,precip_abs2,precip_abs3