Dear Roger, Let me know if I can help you in any way.
Best Gilberto > On 28 Nov 2020, at 18:08, Roger Bivand <roger.biv...@nhh.no> wrote: > > For completeness, I've put up a skeleton package on > https://github.com/rsbivand/checkGDALDrivers > <https://github.com/rsbivand/checkGDALDrivers>, with Github Actions to check > the package on macOS-latest as well as ubuntu-20.04 (latest and devel) and > Windows-latest. The MacOS platform opens a GTiff file, but does not open a > JP2 file (using rgdal::GDAL.open()): > > https://github.com/rsbivand/checkGDALDrivers/runs/1467699832 > <https://github.com/rsbivand/checkGDALDrivers/runs/1467699832> > > I've replicated this on R-hub for MacOS using CRAN and brew (the GDAL from > brew in that workflow also misses openjpeg it seems): > > CRAN: > https://artifacts.r-hub.io/checkGDALDrivers_0.0-1.tar.gz-64d505798f4b251d1c801ea5dbe6aa33/ > > <https://artifacts.r-hub.io/checkGDALDrivers_0.0-1.tar.gz-64d505798f4b251d1c801ea5dbe6aa33/> > brew > https://artifacts.r-hub.io/checkGDALDrivers_0.0-1.tar.gz-5dfcf72469d1effc742710d53d167caf/ > > <https://artifacts.r-hub.io/checkGDALDrivers_0.0-1.tar.gz-5dfcf72469d1effc742710d53d167caf/> > > On Winbuilder the GA results are replicated (success with both GTiff and JP2 > on all platforms - there is no guarantee that Debian or Fedora packaged GDAL > will include this or any other optional driver). > > The skeleton package might easily be forked, and could also simply check the > driver listings rather than actually trying to read a GTiff and a JP2 file > (PRs very welcome). > > So we have now a two-threaded way to check for JP2 absence, using this > package's GA, and through R-hub. > > Next step to work out how to get openjpeg into the recipes listings so that > GDAL there is built using it. > > On Sat, 28 Nov 2020, Gilberto Camara wrote: > >> Dear Roger >> >> Many thanks for your patience and your guidance. >> >> I installed the rgdal binary from CRAN and it gives errors in both commands, >> as follows: >> >>> drvs <- rgdal::gdalDrivers()$name; drvs[grep("JP2", drvs)] >> character(0) >> > > Sorry, should have been: > > rgdal::rgdal_extSoftVersion() > > Best wishes, > > Roger > > >>> rgdal::extSoftVersion() >> >> Error: 'extSoftVersion' is not an exported object from 'namespace:rgdal’ >> >> After installing rgdal from source the first command works: >> >>> drvs <- rgdal::gdalDrivers()$name; drvs[grep("JP2", drvs)] >> “JP2OpenJPEG" >> >> but the second does not: >> >>> rgdal::extSoftVersion() >> >> Error: 'extSoftVersion' is not an exported object from 'namespace:rgdal’ >> >> I am using R version 4.0.3 Patched (2020-11-25 r79505), the latest one >> available on CRAN. The rgdal version is 1.5-18 (SVN revision 1082). >> >> More details on rgdal: >> >>> library(rgdal) >> Loading required package: sp >> rgdal: version: 1.5-18, (SVN revision 1082) >> Geospatial Data Abstraction Library extensions to R successfully loaded >> Loaded GDAL runtime: GDAL 3.2.0, released 2020/10/26 >> Path to GDAL shared files: >> /Users/gilbertocamara/Library/R/4.0/library/sf/gdal >> GDAL binary built with GEOS: TRUE >> Loaded PROJ runtime: Rel. 7.1.1, September 1st, 2020, [PJ_VERSION: 711] >> Path to PROJ shared files: /Users/gilbertocamara/Library/Application >> Support/proj:/usr/local/share/proj:/usr/local/share/proj >> PROJ CDN enabled: FALSE >> Linking to sp version:1.4-4 >> >> As for sf, it also has to be installed from source. The binary version of sf >> also fails to recognise the JP2 driver, while the one built from source does. >> >>> sf::sf_extSoftVersion() works and gives: >> GEOS GDAL proj.4 GDAL_with_GEOS USE_PROJ_H >> "3.8.1" "3.2.0" "7.1.1" "true" "true” >> >> So, it appears that the automated recipes system missed the openjpeg library. >> >> Best regards >> Gilberto >> =========================== >> Prof Dr Gilberto Camara >> Secretariat Director >> GEO - Group on Earth Observations >> 7 bis, Avenue de La Paix >> CH-1211 Geneva - Switzerland >> Tel: +41227308480 >> Web: www.earthobservations.org >> >> >>> On 27 Nov 2020, at 22:23, Roger Bivand <roger.biv...@nhh.no> wrote: >>> >>> Dear Gilberto, >>> >>> The easiest way to deploy the JP2OpenJPEG driver is to check whether it is >>> in the CRAN MacOS rgdal or sf binary packages, as I described before. If it >>> is not there, then we need to post an issue or PR on >>> https://github.com/R-macos/recipes <https://github.com/R-macos/recipes> >>> <https://github.com/R-macos/recipes <https://github.com/R-macos/recipes>>, >>> I think. >>> >>> Could any MacOS user with rgdal installed binary from CRAN please run: >>> >>> drvs <- rgdal::gdalDrivers()$name; drvs[grep("JP2", drvs)] >>> rgdal::extSoftVersion() >>> >>> and the R and rgdal versions? The equivalent for sf is: >>> >>> drvs <- sf::st_drivers("raster")$name; drvs[grep("JP2", drvs)] >>> sf::sf_extSoftVersion() >>> >>> This is just to check whether the recent change to the automated recipes >>> system perhaps missed the openjpeg library which is used automatically if >>> present. >>> >>> If it went missing, we should be able to reinstate it (or if never >>> available - provide it - the CRAN Windows binary does have this driver), >>> then all users of CRAM MacOS binary packages built against GDAL will be >>> able to use the driver without having to build from source. >>> >>> Best wishes, >>> >>> Roger >>> >>> On Fri, 27 Nov 2020, Gilberto Camara wrote: >>> >>>> Dear Roger >>>> >>>> Many thanks for your support. I built GDAL from scratch and now it >>>> supports the JPEG-2000 driver using the “openjpeg” library. The reported >>>> problems are now solved. >>>> >>>> The whole exercise gave me some lessons on RGDAL and GDAL for users of >>>> MacOS BigSur: >>>> >>>> 1. The usual ways of installing GDAL in macOS (using Homebrew or the >>>> Frameworks provided by KingChaos) do not provide support for >>>> JPEG-2000. So, one has to install GDAL and RGDAL from source. >>>> >>>> 2. One has to use Apple’s C/C++ clang compiler version 12.0, following >>>> the advice given in Stack Overflow: >>>> >>>> https://stackoverflow.com/questions/63972113/big-sur-clang-invalid-version-error-due-to-macosx-deployment-target >>>> >>>> <https://stackoverflow.com/questions/63972113/big-sur-clang-invalid-version-error-due-to-macosx-deployment-target> >>>> >>>> 3. For GDAL to compile properly, it is necessary to install first >>>> “pkg-config”, and then the libraries “proj”, “geo”, “tiff”, “jpeg”, >>>> “openjpeg”, and “zstd”. >>>> >>>> Thus, if other users of “gdal” find problems with BigSur, I can volunteer >>>> to support them. >>>> >>>> Best regards >>>> Gilberto >>>> >>>> =========================== >>>> Prof Dr Gilberto Camara >>>> Secretariat Director >>>> GEO - Group on Earth Observations >>>> 7 bis, Avenue de La Paix >>>> CH-1211 Geneva - Switzerland >>>> Tel: +41227308480 >>>> Web: www.earthobservations.org >>>> >>>> >>>>> On 26 Nov 2020, at 15:40, Roger Bivand <roger.biv...@nhh.no> wrote: >>>>> >>>>> Dear Gilberto, >>>>> >>>>> On Thu, 26 Nov 2020, GilbertoCamara wrote: >>>>> >>>>>> Dear R-SIG-GEO and Roger >>>>>> >>>>>> I am developing an R package (https://github.com/e-sensing/sits >>>>>> <https://github.com/e-sensing/sits>) to analyse satellite image time >>>>>> series (SITS) which is heavily dependent on “rgdal”. >>>>>> >>>>>> I would like to report an issue with rgdal in the new macOS BigSur. >>>>>> While I agree with Roger that it is not wise to install a new OS until >>>>>> it is stable, I hope the information below will be useful. >>>>>> >>>>>> For starters, let me praise Roger, Edzer and all those involved in >>>>>> “rgdal”. I did some debugging on the source code and was humbled by the >>>>>> effort involved in making the code an operational software many of us >>>>>> rely on. Chapeau bas! >>>>>> >>>>>> That said, please allow me to report on three issues: >>>>>> >>>>>> 1. Installation >>>>>> >>>>>> I have installed GDAL-3.2.0 using Homebrew on BigSur; it works fine. >>>>>> When installing the binary version of rgdal-1.5-18 (SVN revision 1082) >>>>>> from CRAN, recently released by Simon Urbanek, “rgdal" reports that is >>>>>> is using GDAL-3.1.1, which is not installed. The actual message is: >>>>>> "Loaded GDAL runtime: GDAL 3.1.1, released 2020/06/22”. >>>>>> >>>>>> When installing from source, rgdal recognises GDAL-3.2.0, if the >>>>>> Homebrew libraries are on the path. The message changes to: "Loaded GDAL >>>>>> runtime: GDAL 3.2.0, released 2020/10/26." >>>>>> >>>>>> It is odd that the binary version would report using a runtime that is >>>>>> not there. >>>>> >>>>> On MacOS and Windows, CRAN binary packages are built using static >>>>> linking, for a number of reasons. One is to limit installation >>>>> difficulties, another to make support easier, as all users of a updated >>>>> package/R version will be using the same set of external software >>>>> components (of course, locales will vary, but most variables are fixed). >>>>> >>>>>> >>>>>> 2. Errors in /vsis3 file access >>>>>> >>>>>> In earlier versions of macOS, rgdal had no problems with accessing files >>>>>> in AWS with commands such as: >>>>>> >>>>>>> s3_file <- >>>>>>> "/vsis3/sentinel-s2-l2a/tiles/20/L/KP/2018/8/17/0/R20m/B02.jp2” >>>>>>> rgdal::GDALinfo(s3_file) >>>>>> >>>>>> In BigSur, it produces an error. Debugging the rgdal code, I found the >>>>>> error to arise from line 723 of the “gdal-bindings.cpp” file. This is >>>>>> one of the places where rgdal calls the GDAL function “GDALOpenEx”, as >>>>>> follows: >>>>> >>>>> Please first check on running systems with pre-Big Sur and Big Sur that >>>>> the returned lists of drivers match. Crucially, jp2 (Jpeg 2000) needs >>>>> GDAL built against openjpeg. If one of the systems has GDAL built with >>>>> the driver, and the other without, this outcome would be expected. I >>>>> suspect that the Big Sur GDAL (or the CRAN MacOS rgdal binary) has >>>>> missing/defective drivers. >>>>> >>>>> For my Fedora 33 system with GDAL installed from source, I have: >>>>> >>>>> drvs <- rgdal::gdalDrivers()$name; drvs[grep("JP2", drvs)] >>>>> ## [1] "JP2OpenJPEG" >>>>> >>>>> There are other JP2* drivers, but they need closed source libraries when >>>>> GDAL itself is built, and cannot be redistributed from CRAN. >>>>> >>>>>> >>>>>> GDALDataset *pDataset = (GDALDataset *) GDALOpenEx(fn, RWFlag, >>>>>> papszAllowedDrivers, papszOpenOptions, NULL); >>>>>> >>>>>> The function call returns a NULL pointer. Since calling gdalinfo >>>>>> externally or using gdalUtils::gdalinfo works, it seems there is a >>>>>> problem with the return parameters which are provided to rgdal by GDAL. >>>>>> >>>>>> To reproduce the issue, one needs AWS credentials. If Roger and/or Edzer >>>>>> wish to have a go at this issue, I can provide a temporary credential >>>>>> for doing so. >>>>> >>>>> First, we need to be sure that the driver is present, then present and >>>>> working. >>>>> >>>>>> >>>>>> 3. Errors in TIFF Decoding >>>>>> >>>>>> Running devtools::check() produces a strange error on TIFF decoding on a >>>>>> very small file. The error is odd: >>>>>> >>>>>> "TIFFReadDirectory: Warning, Unknown field with tag 42112 (0xa480) >>>>>> encountered." >>>>>> >>>>>> The call stack is as follows: >>>>>> >>>>>> 1: .Call("RGDAL_OpenDataset", .normalize_if_path(filename, mustWork = >>>>>> NA), TRUE, silent, allowedDrivers, options, PACKAGE = "rgdal") >>>>>> 2: .local(.Object, ...) >>>>>> 3: initialize(value, ...) >>>>>> 4: initialize(value, ...) >>>>>> 5: new("GDALReadOnlyDataset", filename, silent = silent, allowedDrivers >>>>>> = allowedDrivers, options = options) >>>>>> 6: GDAL.open(fname, silent = silent, allowedDrivers = allowedDrivers, >>>>>> options = options) >>>>>> 7: rgdal::GDALinfo(file, silent = FALSE) >>>>>> >>>>>> The error appears to be in the same place as the one reported above. >>>>>> However, it is hard to reproduce, because when running on the console, >>>>>> rgdal works. >>>>> >>>>> This feels again like a driver mismatch. Please try with the CRAN MacOS >>>>> binary package, for which >>>>> https://cran.r-project.org/web/checks/check_results_rgdal.html looks >>>>> clean. The examples for rgdal::readGDAL() include reading TIFF files, so >>>>> are run in CRAN daily checks. >>>>> >>>>> I have no access to any MacOS platform, so cannot do more than arm's >>>>> length debug. My clear suspicion is that the GDAL you are using has >>>>> drivers missing/defective. A small JP2 raster could be added to the >>>>> examples to trap driver malfunction. >>>>> >>>>> Best wishes, >>>>> >>>>> Roger >>>>> >>>>>> >>>>>>> ndvi_file <- >>>>>>> c(system.file("extdata/raster/mod13q1/sinop-ndvi-2014.tif", package = >>>>>>> "sits”)) >>>>>>> rgdal::GDALinfo(ndvi_file, silent = FALSE) >>>>>> >>>>>> However, given that the place on the “rgdal” code where the error occurs >>>>>> is the same, it might be worthwhile to look into the RGDAL-GDAL >>>>>> interface in more detail. >>>>>> >>>>>> I know it’s my responsibility to have moved to macOS BigSur too soon. >>>>>> Thus, I do not expect that you address the issue. That said, any help >>>>>> would be much appreciated. >>>>>> >>>>>> Best regards >>>>>> Gilberto >>>>>> =========================== >>>>>> Prof Dr Gilberto Camara >>>>>> Secretariat Director >>>>>> GEO - Group on Earth Observations >>>>>> 7 bis, Avenue de La Paix >>>>>> CH-1211 Geneva - Switzerland >>>>>> Tel: +41227308480 >>>>>> Web: www.earthobservations.org <http://www.earthobservations.org/> >>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> -- >>>>> Roger Bivand >>>>> Department of Economics, Norwegian School of Economics, >>>>> Helleveien 30, N-5045 Bergen, Norway. >>>>> voice: +47 55 95 93 55; e-mail: roger.biv...@nhh.no >>>>> https://orcid.org/0000-0003-2392-6140 >>>>> https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en >>>> >>>> >>> >>> -- >>> Roger Bivand >>> Department of Economics, Norwegian School of Economics, >>> Helleveien 30, N-5045 Bergen, Norway. >>> voice: +47 55 95 93 55; e-mail: roger.biv...@nhh.no >>> <mailto:roger.biv...@nhh.no> <mailto:roger.biv...@nhh.no >>> <mailto:roger.biv...@nhh.no>> >>> https://orcid.org/0000-0003-2392-6140 >>> <https://orcid.org/0000-0003-2392-6140> >>> <https://orcid.org/0000-0003-2392-6140 >>> <https://orcid.org/0000-0003-2392-6140>> >>> https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en_______________________________________________ >>> >>> <https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en_______________________________________________><https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en_______________________________________________ >>> >>> <https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en_______________________________________________>> >>> R-sig-Geo mailing list >>> R-sig-Geo@r-project.org <mailto:R-sig-Geo@r-project.org> >>> <mailto:R-sig-Geo@r-project.org <mailto:R-sig-Geo@r-project.org>> >>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo >>> <https://stat.ethz.ch/mailman/listinfo/r-sig-geo> >>> <https://stat.ethz.ch/mailman/listinfo/r-sig-geo >>> <https://stat.ethz.ch/mailman/listinfo/r-sig-geo>> >> > > -- > Roger Bivand > Department of Economics, Norwegian School of Economics, > Helleveien 30, N-5045 Bergen, Norway. > voice: +47 55 95 93 55; e-mail: roger.biv...@nhh.no > https://orcid.org/0000-0003-2392-6140 > https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en_______________________________________________ > 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