123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975 |
- """!@package grass.temporal
- @brief GRASS Python scripting module (temporal GIS functions)
- Temporal GIS unit tests
- Usage:
- @code
- import grass.temporal as tgis
- tgis.test_increment_datetime_by_string()
- ...
- @endcode
- (C) 2008-2011 by the GRASS Development Team
- This program is free software under the GNU General Public
- License (>=v2). Read the file COPYING that comes with GRASS
- for details.
- @author Soeren Gebbert
- """
- from datetime import datetime, date, time, timedelta
- import grass.script.core as core
- from temporal_granularity import *
- from datetime_math import *
- from space_time_datasets import *
- ###############################################################################
- def test_increment_datetime_by_string():
- # First test
- print "# Test 1"
- dt = datetime(2001, 9, 1, 0, 0, 0)
- string = "60 seconds, 4 minutes, 12 hours, 10 days, 1 weeks, 5 months, 1 years"
- dt1 = datetime(2003,2,18,12,5,0)
- dt2 = increment_datetime_by_string(dt, string)
- print dt
- print dt2
- delta = dt1 -dt2
- if delta.days != 0 or delta.seconds != 0:
- core.error("increment computation is wrong %s" % (delta))
- # Second test
- print "# Test 2"
- dt = datetime(2001, 11, 1, 0, 0, 0)
- string = "1 months"
- dt1 = datetime(2001,12,1)
- dt2 = increment_datetime_by_string(dt, string)
- print dt
- print dt2
- delta = dt1 -dt2
- if delta.days != 0 or delta.seconds != 0:
- core.error("increment computation is wrong %s" % (delta))
- # Third test
- print "# Test 3"
- dt = datetime(2001, 11, 1, 0, 0, 0)
- string = "13 months"
- dt1 = datetime(2002,12,1)
- dt2 = increment_datetime_by_string(dt, string)
- print dt
- print dt2
- delta = dt1 -dt2
- if delta.days != 0 or delta.seconds != 0:
- core.error("increment computation is wrong %s" % (delta))
- # 4. test
- print "# Test 4"
- dt = datetime(2001, 1, 1, 0, 0, 0)
- string = "72 months"
- dt1 = datetime(2007,1,1)
- dt2 = increment_datetime_by_string(dt, string)
- print dt
- print dt2
- delta = dt1 -dt2
- if delta.days != 0 or delta.seconds != 0:
- core.error("increment computation is wrong %s" % (delta))
- ###############################################################################
- def test_adjust_datetime_to_granularity():
- # First test
- print "Test 1"
- dt = datetime(2001, 8, 8, 12,30,30)
- result = adjust_datetime_to_granularity(dt, "5 seconds")
- correct = datetime(2001, 8, 8, 12,30,30)
- delta = correct - result
- if delta.days != 0 or delta.seconds != 0:
- core.error("Granularity adjustment computation is wrong %s" % (delta))
- # Second test
- print "Test 2"
- result = adjust_datetime_to_granularity(dt, "20 minutes")
- correct = datetime(2001, 8, 8, 12,30,00)
- delta = correct - result
- if delta.days != 0 or delta.seconds != 0:
- core.error("Granularity adjustment computation is wrong %s" % (delta))
- # Third test
- print "Test 2"
- result = adjust_datetime_to_granularity(dt, "20 minutes")
- correct = datetime(2001, 8, 8, 12,30,00)
- delta = correct - result
- if delta.days != 0 or delta.seconds != 0:
- core.error("Granularity adjustment computation is wrong %s" % (delta))
- # 4. test
- print "Test 4"
- result = adjust_datetime_to_granularity(dt, "3 hours")
- correct = datetime(2001, 8, 8, 12,00,00)
- delta = correct - result
- if delta.days != 0 or delta.seconds != 0:
- core.error("Granularity adjustment computation is wrong %s" % (delta))
- # 5. test
- print "Test 5"
- result = adjust_datetime_to_granularity(dt, "5 days")
- correct = datetime(2001, 8, 8, 00,00,00)
- delta = correct - result
- if delta.days != 0 or delta.seconds != 0:
- core.error("Granularity adjustment computation is wrong %s" % (delta))
- # 6. test
- print "Test 6"
- result = adjust_datetime_to_granularity(dt, "2 weeks")
- correct = datetime(2001, 8, 6, 00,00,00)
- delta = correct - result
- if delta.days != 0 or delta.seconds != 0:
- core.error("Granularity adjustment computation is wrong %s" % (delta))
- # 7. test
- print "Test 7"
- result = adjust_datetime_to_granularity(dt, "6 months")
- correct = datetime(2001, 8, 1, 00,00,00)
- delta = correct - result
- if delta.days != 0 or delta.seconds != 0:
- core.error("Granularity adjustment computation is wrong %s" % (delta))
- # 8. test
- print "Test 8"
- result = adjust_datetime_to_granularity(dt, "2 years")
- correct = datetime(2001, 1, 1, 00,00,00)
- delta = correct - result
- if delta.days != 0 or delta.seconds != 0:
- core.error("Granularity adjustment computation is wrong %s" % (delta))
- # 9. test
- print "Test 9"
- result = adjust_datetime_to_granularity(dt, "2 years, 3 months, 5 days, 3 hours, 3 minutes, 2 seconds")
- correct = datetime(2001, 8, 8, 12,30,30)
- delta = correct - result
- if delta.days != 0 or delta.seconds != 0:
- core.error("Granularity adjustment computation is wrong %s" % (delta))
- # 10. test
- print "Test 10"
- result = adjust_datetime_to_granularity(dt, "3 months, 5 days, 3 minutes")
- correct = datetime(2001, 8, 8, 12,30,00)
- delta = correct - result
- if delta.days != 0 or delta.seconds != 0:
- core.error("Granularity adjustment computation is wrong %s" % (delta))
- # 11. test
- print "Test 11"
- result = adjust_datetime_to_granularity(dt, "3 weeks, 5 days")
- correct = datetime(2001, 8, 8, 00,00,00)
- delta = correct - result
- if delta.days != 0 or delta.seconds != 0:
- core.error("Granularity adjustment computation is wrong %s" % (delta))
- ###############################################################################
- def test_compute_datetime_delta():
- print "Test 1"
- start = datetime(2001, 1, 1, 00,00,00)
- end = datetime(2001, 1, 1, 00,00,00)
- comp = compute_datetime_delta(start, end)
- result = comp["second"]
- correct = 0
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 2"
- start = datetime(2001, 1, 1, 00,00,14)
- end = datetime(2001, 1, 1, 00,00,44)
- comp = compute_datetime_delta(start, end)
- result = comp["second"]
- correct = 30
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 3"
- start = datetime(2001, 1, 1, 00,00,44)
- end = datetime(2001, 1, 1, 00,01,14)
- comp = compute_datetime_delta(start, end)
- result = comp["second"]
- correct = 30
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 4"
- start = datetime(2001, 1, 1, 00,00,30)
- end = datetime(2001, 1, 1, 00,05,30)
- comp = compute_datetime_delta(start, end)
- result = comp["second"]
- correct = 300
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 5"
- start = datetime(2001, 1, 1, 00,00,00)
- end = datetime(2001, 1, 1, 00,01,00)
- comp = compute_datetime_delta(start, end)
- result = comp["minute"]
- correct = 1
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 6"
- start = datetime(2011,10,31, 00,45,00)
- end = datetime(2011,10,31, 01,45,00)
- comp = compute_datetime_delta(start, end)
- result = comp["minute"]
- correct = 60
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 7"
- start = datetime(2011,10,31, 00,45,00)
- end = datetime(2011,10,31, 01,15,00)
- comp = compute_datetime_delta(start, end)
- result = comp["minute"]
- correct = 30
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 8"
- start = datetime(2011,10,31, 00,45,00)
- end = datetime(2011,10,31, 12,15,00)
- comp = compute_datetime_delta(start, end)
- result = comp["minute"]
- correct = 690
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 9"
- start = datetime(2011,10,31, 00,00,00)
- end = datetime(2011,10,31, 01,00,00)
- comp = compute_datetime_delta(start, end)
- result = comp["hour"]
- correct = 1
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 10"
- start = datetime(2011,10,31, 00,00,00)
- end = datetime(2011,11,01, 01,00,00)
- comp = compute_datetime_delta(start, end)
- result = comp["hour"]
- correct = 25
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 11"
- start = datetime(2011,10,31, 12,00,00)
- end = datetime(2011,11,01, 06,00,00)
- comp = compute_datetime_delta(start, end)
- result = comp["hour"]
- correct = 18
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 12"
- start = datetime(2011,11,01, 00,00,00)
- end = datetime(2011,12,01, 01,00,00)
- comp = compute_datetime_delta(start, end)
- result = comp["hour"]
- correct = 30 * 24 + 1
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 13"
- start = datetime(2011,11,01, 00,00,00)
- end = datetime(2011,11,05, 00,00,00)
- comp = compute_datetime_delta(start, end)
- result = comp["day"]
- correct = 4
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 14"
- start = datetime(2011,10,06, 00,00,00)
- end = datetime(2011,11,05, 00,00,00)
- comp = compute_datetime_delta(start, end)
- result = comp["day"]
- correct = 30
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 15"
- start = datetime(2011,12,02, 00,00,00)
- end = datetime(2012,01,01, 00,00,00)
- comp = compute_datetime_delta(start, end)
- result = comp["day"]
- correct = 30
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 16"
- start = datetime(2011,01,01, 00,00,00)
- end = datetime(2011,02,01, 00,00,00)
- comp = compute_datetime_delta(start, end)
- result = comp["month"]
- correct = 1
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 17"
- start = datetime(2011,12,01, 00,00,00)
- end = datetime(2012,01,01, 00,00,00)
- comp = compute_datetime_delta(start, end)
- result = comp["month"]
- correct = 1
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 18"
- start = datetime(2011,12,01, 00,00,00)
- end = datetime(2012,06,01, 00,00,00)
- comp = compute_datetime_delta(start, end)
- result = comp["month"]
- correct = 6
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 19"
- start = datetime(2011,06,01, 00,00,00)
- end = datetime(2021,06,01, 00,00,00)
- comp = compute_datetime_delta(start, end)
- result = comp["year"]
- correct = 10
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 20"
- start = datetime(2011,06,01, 00,00,00)
- end = datetime(2012,06,01, 12,00,00)
- comp = compute_datetime_delta(start, end)
- result = comp["hour"]
- d = end - start
- correct = 12 + d.days * 24
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 21"
- start = datetime(2011,06,01, 00,00,00)
- end = datetime(2012,06,01, 12,30,00)
- comp = compute_datetime_delta(start, end)
- result = comp["minute"]
- d = end - start
- correct = d.days * 24 * 60 + 12 * 60 + 30
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 22"
- start = datetime(2011,06,01, 00,00,00)
- end = datetime(2012,06,01, 12,00,05)
- comp = compute_datetime_delta(start, end)
- result = comp["second"]
- d = end - start
- correct = 5 + 60 * 60 * 12 + d.days * 24 * 60 * 60
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 23"
- start = datetime(2011,06,01, 00,00,00)
- end = datetime(2012,06,01, 00,30,00)
- comp = compute_datetime_delta(start, end)
- result = comp["minute"]
- d = end - start
- correct = 30 + d.days * 24 * 60
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- print "Test 24"
- start = datetime(2011,06,01, 00,00,00)
- end = datetime(2012,06,01, 00,00,05)
- comp = compute_datetime_delta(start, end)
- result = comp["second"]
- d = end - start
- correct = 5 + d.days * 24 * 60 * 60
- delta = correct - result
- if delta != 0:
- core.error("Compute datetime delta is wrong %s" % (delta))
- ###############################################################################
- def test_compute_relative_time_granularity():
-
- # First we test intervals
- print "Test 1"
- maps = []
- fact = 5
- start = 1
- end = start * fact
- for i in range(6):
- end = start * fact
- map = raster_dataset(None)
- map.set_relative_time(start, end)
- maps.append(map)
- start = end
- fact = fact - 1
- gran = round(compute_relative_time_granularity(maps))
- if fact - gran != 0:
- core.error("Wrong granularity reference %i != gran %i" % (fact, gran))
-
- print "Test 2"
- maps = []
- fact = 3
- start = 1.0/86400
- end = start * fact
- for i in range(10):
- end = start * fact
- map = raster_dataset(None)
- map.set_relative_time(start, end)
- maps.append(map)
- start = end
- fact = fact - 1
- gran = round(compute_relative_time_granularity(maps) * 86400)
- if fact - gran != 0:
- core.error("Wrong granularity reference %i != gran %i" % (fact, gran))
- print "Test 3 with gaps"
- maps = []
- fact = 3
- start = 1
- end = start + fact
- for i in range(10):
- shift = i*2*fact
- start = shift
- end = start + fact
- map = raster_dataset(None)
- map.set_relative_time(start, end)
- maps.append(map)
- gran = round(compute_relative_time_granularity(maps))
- if fact - gran != 0:
- core.error("Wrong granularity reference %i != gran %i" % (fact, gran))
- # Second we test intervals and points mixed
- print "Test 4 intervals and points"
- maps = []
- fact = 5
- start = 1
- end = start * fact
- count = 0
- for i in range(6):
- end = start * fact
- map = raster_dataset(None)
- if count % 2 == 0:
- map.set_relative_time(start, end)
- else:
- map.set_relative_time(start, None)
- maps.append(map)
- start = end
- count += 1
- fact = fact - 1
- gran = round(compute_relative_time_granularity(maps))
- if fact - gran != 0:
- core.error("Wrong granularity reference %i != gran %i" % (fact, gran))
-
- # Second we test points only
-
- print "Test 5 points only"
- maps = []
- fact = 3
- start = 1.0/86400
- for i in range(10):
- point = (i + 1)*fact*start
- map = raster_dataset(None)
- map.set_relative_time(point, None)
- maps.append(map)
- gran = round(compute_relative_time_granularity(maps) * 86400)
- if fact - gran != 0:
- core.error("Wrong granularity reference %i != gran %i" % (fact, gran))
- ###############################################################################
- def test_compute_absolute_time_granularity():
-
- # First we test intervals
- print "Test 1"
- maps = []
- a = datetime(2001, 1, 1)
- increment = "1 years"
- for i in range(10):
- start = increment_datetime_by_string(a, increment, i)
- end = increment_datetime_by_string(a, increment, i + 1)
- map = raster_dataset(None)
- map.set_absolute_time(start, end)
- maps.append(map)
- gran = compute_absolute_time_granularity(maps)
- if increment != gran:
- core.error("Wrong granularity reference %s != gran %s" % (increment, gran))
- print "Test 2"
- maps = []
- a = datetime(2001, 1, 1)
- increment = "3 years"
- for i in range(10):
- start = increment_datetime_by_string(a, increment, i)
- end = increment_datetime_by_string(a, increment, i + 1)
- map = raster_dataset(None)
- map.set_absolute_time(start, end)
- maps.append(map)
- gran = compute_absolute_time_granularity(maps)
- if increment != gran:
- core.error("Wrong granularity reference %s != gran %s" % (increment, gran))
- print "Test 3"
- maps = []
- a = datetime(2001, 5, 1)
- increment = "1 months"
- for i in range(20):
- start = increment_datetime_by_string(a, increment, i)
- end = increment_datetime_by_string(a, increment, i + 1)
- map = raster_dataset(None)
- map.set_absolute_time(start, end)
- maps.append(map)
- gran = compute_absolute_time_granularity(maps)
- if increment != gran:
- core.error("Wrong granularity reference %s != gran %s" % (increment, gran))
- print "Test 4"
- maps = []
- a = datetime(2001, 1, 1)
- increment = "3 months"
- for i in range(20):
- start = increment_datetime_by_string(a, increment, i)
- end = increment_datetime_by_string(a, increment, i + 1)
- map = raster_dataset(None)
- map.set_absolute_time(start, end)
- maps.append(map)
- gran = compute_absolute_time_granularity(maps)
- if increment != gran:
- core.error("Wrong granularity reference %s != gran %s" % (increment, gran))
- print "Test 3"
- maps = []
- a = datetime(2001, 1, 1)
- increment = "1 days"
- for i in range(6):
- start = increment_datetime_by_string(a, increment, i)
- end = increment_datetime_by_string(a, increment, i + 1)
- map = raster_dataset(None)
- map.set_absolute_time(start, end)
- maps.append(map)
- gran = compute_absolute_time_granularity(maps)
- if increment != gran:
- core.error("Wrong granularity reference %s != gran %s" % (increment, gran))
- print "Test 4"
- maps = []
- a = datetime(2001, 1, 14)
- increment = "14 days"
- for i in range(6):
- start = increment_datetime_by_string(a, increment, i)
- end = increment_datetime_by_string(a, increment, i + 1)
- map = raster_dataset(None)
- map.set_absolute_time(start, end)
- maps.append(map)
- gran = compute_absolute_time_granularity(maps)
- if increment != gran:
- core.error("Wrong granularity reference %s != gran %s" % (increment, gran))
- print "Test 5"
- maps = []
- a = datetime(2001, 3, 1)
- increment = "1 months, 4 days"
- for i in range(20):
- start = increment_datetime_by_string(a, increment, i)
- end = increment_datetime_by_string(a, increment, i + 1)
- map = raster_dataset(None)
- map.set_absolute_time(start, end)
- maps.append(map)
- increment = "1 days"
- gran = compute_absolute_time_granularity(maps)
- if increment != gran:
- core.error("Wrong granularity reference %s != gran %s" % (increment, gran))
- print "Test 6"
- maps = []
- a = datetime(2001, 2, 11)
- increment = "1 days, 1 hours"
- for i in range(20):
- start = increment_datetime_by_string(a, increment, i)
- end = increment_datetime_by_string(a, increment, i + 1)
- map = raster_dataset(None)
- map.set_absolute_time(start, end)
- maps.append(map)
- increment = "25 hours"
- gran = compute_absolute_time_granularity(maps)
- if increment != gran:
- core.error("Wrong granularity reference %s != gran %s" % (increment, gran))
- print "Test 7"
- maps = []
- a = datetime(2001, 6, 12)
- increment = "6 hours"
- for i in range(20):
- start = increment_datetime_by_string(a, increment, i)
- end = increment_datetime_by_string(a, increment, i + 1)
- map = raster_dataset(None)
- map.set_absolute_time(start, end)
- maps.append(map)
- gran = compute_absolute_time_granularity(maps)
- if increment != gran:
- core.error("Wrong granularity reference %s != gran %s" % (increment, gran))
- print "Test 8"
- maps = []
- a = datetime(2001, 1, 1)
- increment = "20 minutes"
- for i in range(20):
- start = increment_datetime_by_string(a, increment, i)
- end = increment_datetime_by_string(a, increment, i + 1)
- map = raster_dataset(None)
- map.set_absolute_time(start, end)
- maps.append(map)
- gran = compute_absolute_time_granularity(maps)
- if increment != gran:
- core.error("Wrong granularity reference %s != gran %s" % (increment, gran))
- print "Test 9"
- maps = []
- a = datetime(2001, 1, 1)
- increment = "5 hours, 25 minutes"
- for i in range(20):
- start = increment_datetime_by_string(a, increment, i)
- end = increment_datetime_by_string(a, increment, i + 1)
- map = raster_dataset(None)
- map.set_absolute_time(start, end)
- maps.append(map)
- increment = "325 minutes"
- gran = compute_absolute_time_granularity(maps)
- if increment != gran:
- core.error("Wrong granularity reference %s != gran %s" % (increment, gran))
- print "Test 10"
- maps = []
- a = datetime(2001, 1, 1)
- increment = "5 minutes, 30 seconds"
- for i in range(20):
- start = increment_datetime_by_string(a, increment, i)
- end = increment_datetime_by_string(a, increment, i + 1)
- map = raster_dataset(None)
- map.set_absolute_time(start, end)
- maps.append(map)
- increment = "330 seconds"
- gran = compute_absolute_time_granularity(maps)
- if increment != gran:
- core.error("Wrong granularity reference %s != gran %s" % (increment, gran))
- print "Test 11"
- maps = []
- a = datetime(2001,12,31)
- increment = "60 minutes, 30 seconds"
- for i in range(24):
- start = increment_datetime_by_string(a, increment, i)
- end = increment_datetime_by_string(a, increment, i + 1)
- map = raster_dataset(None)
- map.set_absolute_time(start, end)
- maps.append(map)
- increment = "3630 seconds"
- gran = compute_absolute_time_granularity(maps)
- if increment != gran:
- core.error("Wrong granularity reference %s != gran %s" % (increment, gran))
- print "Test 12"
- maps = []
- a = datetime(2001,12,31, 12, 30, 30)
- increment = "3600 seconds"
- for i in range(24):
- start = increment_datetime_by_string(a, increment, i)
- end = increment_datetime_by_string(a, increment, i + 1)
- map = raster_dataset(None)
- map.set_absolute_time(start, end)
- maps.append(map)
- gran = compute_absolute_time_granularity(maps)
- if increment != gran:
- core.error("Wrong granularity reference %s != gran %s" % (increment, gran))
- # Test absolute time points
- print "Test 13"
- maps = []
- a = datetime(2001,12,31, 12, 30, 30)
- increment = "3600 seconds"
- for i in range(24):
- start = increment_datetime_by_string(a, increment, i)
- end = None
- map = raster_dataset(None)
- map.set_absolute_time(start, end)
- maps.append(map)
- gran = compute_absolute_time_granularity(maps)
- if increment != gran:
- core.error("Wrong granularity reference %s != gran %s" % (increment, gran))
- print "Test 14"
- maps = []
- a = datetime(2001,12,31, 00, 00, 00)
- increment = "20 days"
- for i in range(24):
- start = increment_datetime_by_string(a, increment, i)
- end = None
- map = raster_dataset(None)
- map.set_absolute_time(start, end)
- maps.append(map)
- gran = compute_absolute_time_granularity(maps)
- if increment != gran:
- core.error("Wrong granularity reference %s != gran %s" % (increment, gran))
- print "Test 15"
- maps = []
- a = datetime(2001,12,01, 00, 00, 00)
- increment = "5 months"
- for i in range(24):
- start = increment_datetime_by_string(a, increment, i)
- end = None
- map = raster_dataset(None)
- map.set_absolute_time(start, end)
- maps.append(map)
- gran = compute_absolute_time_granularity(maps)
- if increment != gran:
- core.error("Wrong granularity reference %s != gran %s" % (increment, gran))
- # Test absolute time interval and points
- print "Test 16"
- maps = []
- a = datetime(2001,12,31, 12, 30, 30)
- increment = "3600 seconds"
- for i in range(24):
- start = increment_datetime_by_string(a, increment, i)
- end = increment_datetime_by_string(a, increment, i + 1)
- map = raster_dataset(None)
- map.set_absolute_time(start, end)
- maps.append(map)
- a = datetime(2002,02,01, 12, 30, 30)
- for i in range(24):
- start = increment_datetime_by_string(a, increment, i)
- end = None
- map = raster_dataset(None)
- map.set_absolute_time(start, end)
- maps.append(map)
- gran = compute_absolute_time_granularity(maps)
- if increment != gran:
- core.error("Wrong granularity reference %s != gran %s" % (increment, gran))
- print "Test 17"
- maps = []
- a = datetime(2001,1,1)
- increment = "2 days"
- for i in range(8):
- start = increment_datetime_by_string(a, increment, i)
- end = increment_datetime_by_string(a, increment, i + 1)
- map = raster_dataset(None)
- map.set_absolute_time(start, end)
- maps.append(map)
- a = datetime(2001,02,02)
- for i in range(8):
- start = increment_datetime_by_string(a, increment, i)
- end = None
- map = raster_dataset(None)
- map.set_absolute_time(start, end)
- maps.append(map)
- gran = compute_absolute_time_granularity(maps)
- if increment != gran:
- core.error("Wrong granularity reference %s != gran %s" % (increment, gran))
|