[R-sig-Geo] Sentienl 2 gdal translate

2017-03-15 Thread Miguel Castro Gómez
Hi,

I have Sentinel 2 images (jp2) that I want to convert to GTiff using 
gdal_translate in R (from gdalutils package). Here is the code I’m using

Image_Path<-“/path/to/wd“

S2_JP2_List <- list.files(Image_Path, full.names = TRUE, pattern = ".jp2$")

for (i in 1:length(S2_JP2_List)) {
gdal_translate(src_dataset = S2_JP2_List[[i]], dst_dataset = paste("Band", i , 
"tif"), ot = "UInt16", of = “GTiff")
}

When running this code, the process starts without any error but its never 
ending neither producing any output

I've tried to do it in gdal and the same code works, except that it is 
necessary to skip  the default driver since it cannot manage large jp2 files. 

gdal_translate -of GTiff /path/to/input/S2_b1.jp2  
/path/to/output/S2_b1converted.tif --config GDAL_SKIP JP2ECW

Any idea how could I run this in R?

Thanks 
M



[[alternative HTML version deleted]]

___
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Re: [R-sig-Geo] Sentienl 2 gdal translate

2017-03-15 Thread Loïc Dutrieux
Hi,

I tried your code with some S2 images I had lying around, and it works
on my system. I modified it a bit to write the output layers to the same
directory and not to my working directory.

library(gdalUtils)
library(raster)

Image_Path<-'/path/to/images/'

S2_JP2_List <- list.files(Image_Path, full.names = TRUE, pattern = ".jp2$")

for (file in S2_JP2_List) {
  out_file <- extension(file, 'tif')
  gdal_translate(src_dataset = file, dst_dataset = out_file, ot =
"UInt16", of = "GTiff")
}

gdal has a sentinel 2 driver, but it's not extremely old, therefore it's
possible that your installation doesn't have it; you can check with:

gdal-config --formats | grep sentinel2

Cheers,
Loïc



On 15/03/17 12:49, Miguel Castro Gómez wrote:
> Hi,
> 
> I have Sentinel 2 images (jp2) that I want to convert to GTiff using 
> gdal_translate in R (from gdalutils package). Here is the code I’m using
> 
> Image_Path<-“/path/to/wd“
> 
> S2_JP2_List <- list.files(Image_Path, full.names = TRUE, pattern = ".jp2$")
> 
> for (i in 1:length(S2_JP2_List)) {
> gdal_translate(src_dataset = S2_JP2_List[[i]], dst_dataset = paste("Band", i 
> , "tif"), ot = "UInt16", of = “GTiff")
> }
> 
> When running this code, the process starts without any error but its never 
> ending neither producing any output
> 
> I've tried to do it in gdal and the same code works, except that it is 
> necessary to skip  the default driver since it cannot manage large jp2 files. 
> 
> gdal_translate -of GTiff /path/to/input/S2_b1.jp2  
> /path/to/output/S2_b1converted.tif --config GDAL_SKIP JP2ECW
> 
> Any idea how could I run this in R?
> 
> Thanks 
> M
> 
> 
> 
>   [[alternative HTML version deleted]]
> 
> ___
> R-sig-Geo mailing list
> R-sig-Geo@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>

___
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Re: [R-sig-Geo] Sentienl 2 gdal translate

2017-03-16 Thread Miguel Castro Gómez
Hi Loïc,

I have tried your code but it does not work yet. It just produces one tif file 
for the first band but this file is not correct (8 kb just). The R process keep 
working for a long time without any other output

Here are the versions I’m using

R version: 3.3.2
gdalUtils: v 2.0.1.7
raster: 2.5-8
gdal: 2.1.2, released 2016/10/24

When checking for the sentinel 2 driver in gdal (see red)

 gdal-config --formats | grep sentinel2
gxf gtiff hfa aigrid aaigrid ceos ceos2 iso8211 xpm sdts raw dted mem jdem 
envisat elas fit vrt usgsdem l1b nitf bmp airsar rs2 ilwis rmf leveller sgi 
srtmhgt idrisi gsg ingr ers jaxapalsar dimap gff cosar pds adrg coasp tsx 
terragen blx msgn til r northwood saga xyz hf2 kmlsuperoverlay ctg e00grid zmap 
ngsgeoid iris map cals safe sentinel2 mrf webp wcs wms plmosaic wmts dods grib 
bsb openjpeg jpeg2000 netcdf hdf5 hdf4 ogdi gif jpeg gta png pcraster fits 
pcidsk rik ozi rasterlite mbtiles postgisraster arg

I think the problem is the driver that is used to manage the jp2 file. Any idea 
how can I include in the R code the --config GDAL_SKIP JP2ECW option. 

Cheers,
M

> El 15 mar 2017, a las 23:13, Loïc Dutrieux  
> escribió:
> 
> Hi,
> 
> I tried your code with some S2 images I had lying around, and it works
> on my system. I modified it a bit to write the output layers to the same
> directory and not to my working directory.
> 
> library(gdalUtils)
> library(raster)
> 
> Image_Path<-'/path/to/images/'
> 
> S2_JP2_List <- list.files(Image_Path, full.names = TRUE, pattern = ".jp2$")
> 
> for (file in S2_JP2_List) {
>  out_file <- extension(file, 'tif')
>  gdal_translate(src_dataset = file, dst_dataset = out_file, ot =
> "UInt16", of = "GTiff")
> }
> 
> gdal has a sentinel 2 driver, but it's not extremely old, therefore it's
> possible that your installation doesn't have it; you can check with:
> 
> gdal-config --formats | grep sentinel2
> 
> Cheers,
> Loïc
> 
> 
> 
> On 15/03/17 12:49, Miguel Castro Gómez wrote:
>> Hi,
>> 
>> I have Sentinel 2 images (jp2) that I want to convert to GTiff using 
>> gdal_translate in R (from gdalutils package). Here is the code I’m using
>> 
>> Image_Path<-“/path/to/wd“
>> 
>> S2_JP2_List <- list.files(Image_Path, full.names = TRUE, pattern = ".jp2$")
>> 
>> for (i in 1:length(S2_JP2_List)) {
>> gdal_translate(src_dataset = S2_JP2_List[[i]], dst_dataset = paste("Band", i 
>> , "tif"), ot = "UInt16", of = “GTiff")
>>}
>> 
>> When running this code, the process starts without any error but its never 
>> ending neither producing any output
>> 
>> I've tried to do it in gdal and the same code works, except that it is 
>> necessary to skip  the default driver since it cannot manage large jp2 
>> files. 
>> 
>> gdal_translate -of GTiff /path/to/input/S2_b1.jp2  
>> /path/to/output/S2_b1converted.tif --config GDAL_SKIP JP2ECW
>> 
>> Any idea how could I run this in R?
>> 
>> Thanks 
>> M
>> 
>> 
>> 
>>  [[alternative HTML version deleted]]
>> 
>> ___
>> R-sig-Geo mailing list
>> R-sig-Geo@r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>> 
> 
> ___
> R-sig-Geo mailing list
> R-sig-Geo@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo


[[alternative HTML version deleted]]

___
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Re: [R-sig-Geo] Sentienl 2 gdal translate

2017-03-16 Thread Loïc Dutrieux
Hi Miguel,

Briefly looking at the help and source code of
gdalUtils::gdal_translate(), I don't see any way to pass additional
options. Your best shot is therefore probably to build the expression
yourself and pass it via a system call.

library(raster)

Image_Path<-'/path/to/images/'

S2_JP2_List <- list.files(Image_Path, full.names = TRUE, pattern = ".jp2$")

for (file in S2_JP2_List) {
  out_file <- extension(file, 'tif')
  system2('gdal_translate', args = c('-of GTiff', file, out_file,
'--config GDAL_SKIP JPECW'))
}

But the real question here is why the simple gdal_translate call without
--config GDAL_SKIP JPECW did not work for you while you clearly have the
sentinel2 driver...

Cheers,
Loïc

On 16/03/17 06:02, Miguel Castro Gómez wrote:
> Hi Loïc,
> 
> I have tried your code but it does not work yet. It just produces one
> tif file for the first band but this file is not correct (8 kb just).
> The R process keep working for a long time without any other output
> 
> Here are the versions I’m using
> 
> R version: 3.3.2
> gdalUtils: v 2.0.1.7
> raster: 2.5-8
> gdal: 2.1.2, released 2016/10/24
> 
> When checking for the sentinel 2 driver in gdal (see red)
> 
>  gdal-config --formats | grep sentinel2
> gxf gtiff hfa aigrid aaigrid ceos ceos2 iso8211 xpm sdts raw dted mem
> jdem envisat elas fit vrt usgsdem l1b nitf bmp airsar rs2 ilwis rmf
> leveller sgi srtmhgt idrisi gsg ingr ers jaxapalsar dimap gff cosar pds
> adrg coasp tsx terragen blx msgn til r northwood saga xyz hf2
> kmlsuperoverlay ctg e00grid zmap ngsgeoid iris map cals safe *sentinel2*
> mrf webp wcs wms plmosaic wmts dods grib bsb openjpeg jpeg2000 netcdf
> hdf5 hdf4 ogdi gif jpeg gta png pcraster fits pcidsk rik ozi rasterlite
> mbtiles postgisraster arg
> 
> I think the problem is the driver that is used to manage the jp2 file.
> Any idea how can I include in the R code the --config GDAL_SKIP JP2ECW
> option. 
> 
> Cheers,
> M
> 
>> El 15 mar 2017, a las 23:13, Loïc Dutrieux
>> mailto:loic.dutri...@conabio.gob.mx>>
>> escribió:
>>
>> Hi,
>>
>> I tried your code with some S2 images I had lying around, and it works
>> on my system. I modified it a bit to write the output layers to the same
>> directory and not to my working directory.
>>
>> library(gdalUtils)
>> library(raster)
>>
>> Image_Path<-'/path/to/images/'
>>
>> S2_JP2_List <- list.files(Image_Path, full.names = TRUE, pattern =
>> ".jp2$")
>>
>> for (file in S2_JP2_List) {
>>  out_file <- extension(file, 'tif')
>>  gdal_translate(src_dataset = file, dst_dataset = out_file, ot =
>> "UInt16", of = "GTiff")
>> }
>>
>> gdal has a sentinel 2 driver, but it's not extremely old, therefore it's
>> possible that your installation doesn't have it; you can check with:
>>
>> gdal-config --formats | grep sentinel2
>>
>> Cheers,
>> Loïc
>>
>>
>>
>> On 15/03/17 12:49, Miguel Castro Gómez wrote:
>>> Hi,
>>>
>>> I have Sentinel 2 images (jp2) that I want to convert to GTiff using
>>> gdal_translate in R (from gdalutils package). Here is the code I’m using
>>>
>>> Image_Path<-“/path/to/wd“
>>>
>>> S2_JP2_List <- list.files(Image_Path, full.names = TRUE, pattern =
>>> ".jp2$")
>>>
>>> for (i in 1:length(S2_JP2_List)) {
>>> gdal_translate(src_dataset = S2_JP2_List[[i]], dst_dataset =
>>> paste("Band", i , "tif"), ot = "UInt16", of = “GTiff")
>>>}
>>>
>>> When running this code, the process starts without any error but its
>>> never ending neither producing any output
>>>
>>> I've tried to do it in gdal and the same code works, except that it
>>> is necessary to skip  the default driver since it cannot manage large
>>> jp2 files.
>>>
>>> gdal_translate -of GTiff /path/to/input/S2_b1.jp2
>>>  /path/to/output/S2_b1converted.tif --config GDAL_SKIP JP2ECW
>>>
>>> Any idea how could I run this in R?
>>>
>>> Thanks
>>> M
>>>
>>>
>>>
>>> [[alternative HTML version deleted]]
>>>
>>> ___
>>> R-sig-Geo mailing list
>>> R-sig-Geo@r-project.org 
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>>
>>
>> ___
>> R-sig-Geo mailing list
>> R-sig-Geo@r-project.org 
>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
> 
> 
> 
> Email secured by Check Point
>

___
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Re: [R-sig-Geo] Sentienl 2 gdal translate

2017-03-17 Thread Miguel Castro Gómez
Hi Loïc,

Thanks for your help,

When trying the system2 option this is what happens:

Image_Path<- “path/to/images/"

S2_JP2_List <- list.files(Image_Path, full.names = TRUE, pattern = ".jp2$")

for (file in S2_JP2_List) {
out_file <- extension(file, 'tif')
system2('gdal_translate', args = c('-of GTiff', file, out_file,
   '--config GDAL_SKIP JPECW'))
}

sh: gdal_translate: command not found


I have been checking and the problem may be that R cannot find the 
gdal_translate command. Here are the paths:

Sys.getenv('R_HOME’)
"/Library/Frameworks/R.framework/Resources"
Sys.getenv('PATH')
"/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin”

In terminal:
user$ echo $PATH 
/Library/Frameworks/GDAL.framework/Programs:/Library/Frameworks/GDAL.framework/Programs:/Library/Frameworks/GDAL.framework/Programs:/Users/Miguel/anaconda/bin:/Library/Frameworks/Python.framework/Versions/3.5/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin


I think it has to match but not sure how can I change the path that R is using 
to find the command gdal_translate

Regarding sentinel2 driver, any idea why is not working? Any help on that

Cheers
M


> El 16 mar 2017, a las 19:21, Loïc Dutrieux  
> escribió:
> 
> Hi Miguel,
> 
> Briefly looking at the help and source code of
> gdalUtils::gdal_translate(), I don't see any way to pass additional
> options. Your best shot is therefore probably to build the expression
> yourself and pass it via a system call.
> 
> library(raster)
> 
> Image_Path<-'/path/to/images/'
> 
> S2_JP2_List <- list.files(Image_Path, full.names = TRUE, pattern = ".jp2$")
> 
> for (file in S2_JP2_List) {
>  out_file <- extension(file, 'tif')
>  system2('gdal_translate', args = c('-of GTiff', file, out_file,
> '--config GDAL_SKIP JPECW'))
> }
> 
> But the real question here is why the simple gdal_translate call without
> --config GDAL_SKIP JPECW did not work for you while you clearly have the
> sentinel2 driver...
> 
> Cheers,
> Loïc
> 
> On 16/03/17 06:02, Miguel Castro Gómez wrote:
>> Hi Loïc,
>> 
>> I have tried your code but it does not work yet. It just produces one
>> tif file for the first band but this file is not correct (8 kb just).
>> The R process keep working for a long time without any other output
>> 
>> Here are the versions I’m using
>> 
>> R version: 3.3.2
>> gdalUtils: v 2.0.1.7
>> raster: 2.5-8
>> gdal: 2.1.2, released 2016/10/24
>> 
>> When checking for the sentinel 2 driver in gdal (see red)
>> 
>> gdal-config --formats | grep sentinel2
>> gxf gtiff hfa aigrid aaigrid ceos ceos2 iso8211 xpm sdts raw dted mem
>> jdem envisat elas fit vrt usgsdem l1b nitf bmp airsar rs2 ilwis rmf
>> leveller sgi srtmhgt idrisi gsg ingr ers jaxapalsar dimap gff cosar pds
>> adrg coasp tsx terragen blx msgn til r northwood saga xyz hf2
>> kmlsuperoverlay ctg e00grid zmap ngsgeoid iris map cals safe *sentinel2*
>> mrf webp wcs wms plmosaic wmts dods grib bsb openjpeg jpeg2000 netcdf
>> hdf5 hdf4 ogdi gif jpeg gta png pcraster fits pcidsk rik ozi rasterlite
>> mbtiles postgisraster arg
>> 
>> I think the problem is the driver that is used to manage the jp2 file.
>> Any idea how can I include in the R code the --config GDAL_SKIP JP2ECW
>> option. 
>> 
>> Cheers,
>> M
>> 
>>> El 15 mar 2017, a las 23:13, Loïc Dutrieux
>>> mailto:loic.dutri...@conabio.gob.mx> 
>>> >>
>>> escribió:
>>> 
>>> Hi,
>>> 
>>> I tried your code with some S2 images I had lying around, and it works
>>> on my system. I modified it a bit to write the output layers to the same
>>> directory and not to my working directory.
>>> 
>>> library(gdalUtils)
>>> library(raster)
>>> 
>>> Image_Path<-'/path/to/images/'
>>> 
>>> S2_JP2_List <- list.files(Image_Path, full.names = TRUE, pattern =
>>> ".jp2$")
>>> 
>>> for (file in S2_JP2_List) {
>>> out_file <- extension(file, 'tif')
>>> gdal_translate(src_dataset = file, dst_dataset = out_file, ot =
>>> "UInt16", of = "GTiff")
>>> }
>>> 
>>> gdal has a sentinel 2 driver, but it's not extremely old, therefore it's
>>> possible that your installation doesn't have it; you can check with:
>>> 
>>> gdal-config --formats | grep sentinel2
>>> 
>>> Cheers,
>>> Loïc
>>> 
>>> 
>>> 
>>> On 15/03/17 12:49, Miguel Castro Gómez wrote:
 Hi,
 
 I have Sentinel 2 images (jp2) that I want to convert to GTiff using
 gdal_translate in R (from gdalutils package). Here is the code I’m using
 
 Image_Path<-“/path/to/wd“
 
 S2_JP2_List <- list.files(Image_Path, full.names = TRUE, pattern =
 ".jp2$")
 
 for (i in 1:length(S2_JP2_List)) {
 gdal_translate(src_dataset = S2_JP2_List[[i]], dst_dataset =
 paste("Band", i , "tif"), ot = "UInt16", of = “GTiff")
   }
 
 When running this code, the process starts without any error but its
 never ending neither producing any output
 
 I've tried to do it in gdal and the same code works, except that it
 is n

Re: [R-sig-Geo] Sentienl 2 gdal translate

2017-03-17 Thread Loïc Dutrieux
Hi Miguel,

Do you have more than one installation of gdal? That could potentially
explain why your first try with gdal_translate() did not work.

library(gdalUtils)
length(getOption("gdalUtils_gdalPath"))

should give you the number of installations you have on your system.

If more than 1, gdal_chooseInstallation(hasDrivers=c("SENTINEL2"))
should set the correct path for gdal_translate().

Cheers,
Loïc

On 17/03/17 05:45, Miguel Castro Gómez wrote:
> Hi Loïc,
> 
> Thanks for your help,
> 
> When trying the system2 option this is what happens:
> 
> Image_Path<- “path/to/images/"
> 
> S2_JP2_List <- list.files(Image_Path, full.names = TRUE, pattern = ".jp2$")
> 
> for (file in S2_JP2_List) {
> out_file <- extension(file, 'tif')
> system2('gdal_translate', args = c('-of GTiff', file, out_file,
>'--config GDAL_SKIP JPECW'))
> }
> 
> sh: gdal_translate: command not found
> 
> 
> I have been checking and the problem may be that R cannot find the
> gdal_translate command. Here are the paths:
> 
> Sys.getenv('R_HOME’)
> "/Library/Frameworks/R.framework/Resources"
> Sys.getenv('PATH')
> "/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin”
> 
> In terminal:
> user$ echo $PATH 
> /Library/Frameworks/GDAL.framework/Programs:/Library/Frameworks/GDAL.framework/Programs:/Library/Frameworks/GDAL.framework/Programs:/Users/Miguel/anaconda/bin:/Library/Frameworks/Python.framework/Versions/3.5/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
> 
> 
> I think it has to match but not sure how can I change the path that R is
> using to find the command gdal_translate
> 
> Regarding sentinel2 driver, any idea why is not working? Any help on that
> 
> Cheers
> M
> 
> 
>> El 16 mar 2017, a las 19:21, Loïc Dutrieux
>> mailto:loic.dutri...@conabio.gob.mx>>
>> escribió:
>>
>> Hi Miguel,
>>
>> Briefly looking at the help and source code of
>> gdalUtils::gdal_translate(), I don't see any way to pass additional
>> options. Your best shot is therefore probably to build the expression
>> yourself and pass it via a system call.
>>
>> library(raster)
>>
>> Image_Path<-'/path/to/images/'
>>
>> S2_JP2_List <- list.files(Image_Path, full.names = TRUE, pattern =
>> ".jp2$")
>>
>> for (file in S2_JP2_List) {
>>  out_file <- extension(file, 'tif')
>>  system2('gdal_translate', args = c('-of GTiff', file, out_file,
>> '--config GDAL_SKIP JPECW'))
>> }
>>
>> But the real question here is why the simple gdal_translate call without
>> --config GDAL_SKIP JPECW did not work for you while you clearly have the
>> sentinel2 driver...
>>
>> Cheers,
>> Loïc
>>
>> On 16/03/17 06:02, Miguel Castro Gómez wrote:
>>> Hi Loïc,
>>>
>>> I have tried your code but it does not work yet. It just produces one
>>> tif file for the first band but this file is not correct (8 kb just).
>>> The R process keep working for a long time without any other output
>>>
>>> Here are the versions I’m using
>>>
>>> R version: 3.3.2
>>> gdalUtils: v 2.0.1.7
>>> raster: 2.5-8
>>> gdal: 2.1.2, released 2016/10/24
>>>
>>> When checking for the sentinel 2 driver in gdal (see red)
>>>
>>> gdal-config --formats | grep sentinel2
>>> gxf gtiff hfa aigrid aaigrid ceos ceos2 iso8211 xpm sdts raw dted mem
>>> jdem envisat elas fit vrt usgsdem l1b nitf bmp airsar rs2 ilwis rmf
>>> leveller sgi srtmhgt idrisi gsg ingr ers jaxapalsar dimap gff cosar pds
>>> adrg coasp tsx terragen blx msgn til r northwood saga xyz hf2
>>> kmlsuperoverlay ctg e00grid zmap ngsgeoid iris map cals safe *sentinel2*
>>> mrf webp wcs wms plmosaic wmts dods grib bsb openjpeg jpeg2000 netcdf
>>> hdf5 hdf4 ogdi gif jpeg gta png pcraster fits pcidsk rik ozi rasterlite
>>> mbtiles postgisraster arg
>>>
>>> I think the problem is the driver that is used to manage the jp2 file.
>>> Any idea how can I include in the R code the --config GDAL_SKIP JP2ECW
>>> option. 
>>>
>>> Cheers,
>>> M
>>>
 El 15 mar 2017, a las 23:13, Loïc Dutrieux
 >>>  
 >
 escribió:

 Hi,

 I tried your code with some S2 images I had lying around, and it works
 on my system. I modified it a bit to write the output layers to the same
 directory and not to my working directory.

 library(gdalUtils)
 library(raster)

 Image_Path<-'/path/to/images/'

 S2_JP2_List <- list.files(Image_Path, full.names = TRUE, pattern =
 ".jp2$")

 for (file in S2_JP2_List) {
 out_file <- extension(file, 'tif')
 gdal_translate(src_dataset = file, dst_dataset = out_file, ot =
 "UInt16", of = "GTiff")
 }

 gdal has a sentinel 2 driver, but it's not extremely old, therefore it's
 possible that your installation doesn't have it; you can check with:

 gdal-config --formats | grep sentinel2

 Cheers,
 Loïc



 On 15/03/17 12:49, Miguel Castro Gómez wrote:
> Hi,
>
> I have Sentinel 2 images (jp2) that I want to convert to