-
Notifications
You must be signed in to change notification settings - Fork 25
/
Copy pathTODO
80 lines (59 loc) · 3.54 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
longer term changes:
- reduce the capability of functions eg:
completely separate getHdf from runGdal (also getProduct, getCollection etc should be removed from those functions.
This should allow runGdal to run in a more general manner like a input file list that is crunched. This should result in some more lines to code when using runGdal but is also allows more freedom and performance. AND last but not least at all also much easier handling of the package development.
MOD and MYD should still be run by one call, but not eg: MxD13A1 and MxD13A2. This change would simplify a lot the package development.
- I was quite good to avoid the creation of classes, I am not sure if we really need it...maybe yes? S3 should be enough I guess?
- Accelerate 'Downloading structure on ...'
- Any file in 'inst/external' no longer required?
- get rid of certain dependencies, eg. 'maptools'
detectBitInfo()
- recent products supported? (see whittaker.raster)
- update QA information in look-up table
- implement quality control routines for various products?
MODISoptions()
- Check for presence of .netrc file (<-> LP DAAC, LAADS, NSIDC support)
runGdal()
- an 'HdfName' argument (just like in getHdf()) could be of advantage in the
sense that if one (or numerous) local .hdf file is specified, an online
retrieval (of collection, available dates, etc.) is entirely turned off
- include scale factor during SDS extraction?
- speed up when downloaded hdf / processed tif files are already present
qualityControl
- method based on maximum value from preceding / current / succeeding image (i.e., from user-defined window) as proposed by Yang et al. (2013, http://dx.doi.org/10.1109/LGRS.2012.2219576)
whittaker.raster()
- set (optional) thresholds to get rid of too high or low (i.e., outside [-1;1]) values resulting from smoothing spline
- output file names not in agreement with MODIS naming convention (i.e., timestamps start/end at the 5th/11th position rather than 15th/21st)
getHdf():
- download is not possible for Swath products, see eg. https://github.com/fdetsch/MODIS/issues/18
getGranule():
- tileH,tileV
- remaining 'extent' inputs (sf::st_bbox, MODISextent, character, Raster*, missing)
getCollection():
- retrieval from LAADS (ie. MOD03), particularly during LPDAAC downtime
Automated wget, curl check if any("LPDAAC", "NSIDC") %in% opts$MODISserverOrder
General solution for "//"
Save MODIS Sinusoidal proj4 string somewhere: +proj=sinu +lon_0=0 +x_0=0 +y_0=0 +R=6371007.181 +units=m +no_defs
getStruc():
- if specified, restrict to dates
getTile():
- if interactive and `mode = "draw"`, handle errors for incomplete shapes
- if non-interactive, display aoi
separate issues
* decide fate of `arcStats()`
* feed non-existing collection in `list` format to `getCollection()` and handle
'Error in cat([...])'
Assertion on `MODISoptions()`, e.g. valid entries for 'MODISserverOrder'
curl installed with {curl} package?
<-> would render `system('curl -h')` calls and testing for wget obsolete
--> test in docker environment
find appropriate place for `EarthdataLogin()` if usr and/or pwd is missing
streamline `getStruc()`
<-> currently run in `runGdal()` and, under the hood, `getHdf()`
leverage `gdalwarp` -wo functionality (https://gdal.org/programs/gdalwarp.html#cmdoption-gdalwarp-wo)
put deprecated functions on defunct
runGdal():
* [x] file name in 'Getting file from: LPDAAC'
* [x] optionally turn off 'maskValue', i.e. "None" in `gdalwarp`
(https://gdal.org/programs/gdalwarp.html#cmdoption-gdalwarp-srcnodata)
* [x] check if '-dstnodata' is required