Re: [R-sig-Geo] Maintain SRID with st_write to postgis db
Michael, I have the very same failure, > library(sf) Linking to GEOS 3.4.2, GDAL 2.1.3, proj.4 4.9.1 (pre upgrade attempt, which still works just fine) checking for geos_c.h... yes checking geos: linking with -lgeos_c... yes checking for lwgeom_version in -llwgeom... no configure: error: in `/tmp/RtmpsCmf6B/devtoolsd68e68107a/edzer-sfr-d620f3b': configure: error: lwgeom test failed (--without-readline to disable) I could nearly copy your install output though on 16.04, and the same tangle of it depends on x but it won't be installed & etc. But, if you have PostGIS, you have liblwgeom as it is fairly specific to PostGIS. Perhaps, rather than a devtools::github_install, a clone github lo a local directory and config, make, install might work, but I'm just imagining. then testing: config.log --snip -- configure:3993: checking for lwgeom_version in -llwgeom configure:4018: gcc -std=gnu99 -o conftest -g -O2 -fstack-protector --param=ssp- buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -g -I/usr/lo cal/include -I/usr/local/include -I/usr/local/include -Wl,-Bsymbolic-functions -Wl,-z,relro conftest.c -llwgeom -lproj -L/usr/local/lib -lproj -L/usr/loca l/lib -lgdal -L/usr/local/lib -lgeos_c -lproj >&5 /tmp/ccDBUh1h.o: In function `main': /home/chris/sfr/sfr/conftest.c:34: undefined reference to `lwgeom_version' collect2: error: ld returned 1 exit status configure:4018: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_GDAL_H 1 | #define HAVE_PROJ_API_H 1 | #define HAVE_LIBPROJ 1 | #define HAVE_GEOS_C_H 1 | /* end confdefs.h. */ | | /* Override any GCC internal prototype to avoid an error. |Use char because int might match the return type of a GCC |builtin and then its argument prototype would still apply. */ | #ifdef __cplusplus | extern "C" | #endif | char lwgeom_version (); | int | main () | { | return lwgeom_version (); | ; | return 0; | } configure:4027: result: no configure:4036: error: in `/home/chris/sfr/sfr': configure:4038: error: lwgeom test failed (--without-readline to disable) See `config.log' for more details so, it may or may not be the presence or absence of liblwgeom but simply an undefined reference as suggested above: /home/chris/sfr/sfr/conftest.c:34: undefined reference to `lwgeom_version' , but I'm unclear how the version was being requested (well, I can kind of guess) but failing on undefined reference suggests it is not the version per se that may or may not be present (though is because you are using PostGIS), but how the version was requested. I intuit. Ah, and reading /* confdefs.h */, that it indeed ends with #define HAVE_GEOS_C_H 1, and indeed, conftest.c:34: would have an undefined reference to `lwgeom_version'. And I've said as much as I understand. Chris On Wed, Mar 15, 2017 at 7:53 PM, Michael Tregliawrote: > Sorry - this follow-up isn't entirely an R question, so if best to take > this off list, let me know: > > Installing the dev version from github fails for me (installing on ubuntu > 14.04.5) - I've included the output from the install process below - seems > to fail due to failed check for liblwgeom version. > > Looks like I don't have liblwgeom installed - and when I try (via sudo > apt-get install liblwgeom-2.3-0), it indicates it requires libgeos-c1. > Installing libgeos-c1, however, requires removal of a newer version of > libgeos (libgeos-c1v5), which other FOSS GIS tools depend on (at least if > my understanding is correct). Is there a way around this? Sorry if I'm > just missing something, and thanks again for input. > mike > > > > #Output of install from github > > install_github("edzer/sfr") > Downloading GitHub repo edzer/sfr@master > from URL https://api.github.com/repos/edzer/sfr/zipball/master > Installing sf > '/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore > --quiet \ > CMD INSTALL '/tmp/RtmpKLmhyt/devtools9fd11eb9c3/edzer-sfr-d620f3b' \ > --library='/home/mlt244/R/x86_64-pc-linux-gnu-library/3.3' > --install-tests > > * installing *source* package ‘sf’ ... > configure: CC: gcc -std=gnu99 > configure: CXX: g++ > configure: : > checking for gdal-config... /usr/bin/gdal-config > checking gdal-config usability... yes > configure: GDAL: 2.1.0 > checking GDAL version >= 2.0.0... yes > checking for gcc... gcc -std=gnu99 > checking whether the C compiler works... yes > checking for C compiler default output file name... a.out > checking for suffix of executables... > checking whether we are cross compiling... no >
Re: [R-sig-Geo] Maintain SRID with st_write to postgis db
Sorry - this follow-up isn't entirely an R question, so if best to take this off list, let me know: Installing the dev version from github fails for me (installing on ubuntu 14.04.5) - I've included the output from the install process below - seems to fail due to failed check for liblwgeom version. Looks like I don't have liblwgeom installed - and when I try (via sudo apt-get install liblwgeom-2.3-0), it indicates it requires libgeos-c1. Installing libgeos-c1, however, requires removal of a newer version of libgeos (libgeos-c1v5), which other FOSS GIS tools depend on (at least if my understanding is correct). Is there a way around this? Sorry if I'm just missing something, and thanks again for input. mike #Output of install from github > install_github("edzer/sfr") Downloading GitHub repo edzer/sfr@master from URL https://api.github.com/repos/edzer/sfr/zipball/master Installing sf '/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore --quiet \ CMD INSTALL '/tmp/RtmpKLmhyt/devtools9fd11eb9c3/edzer-sfr-d620f3b' \ --library='/home/mlt244/R/x86_64-pc-linux-gnu-library/3.3' --install-tests * installing *source* package ‘sf’ ... configure: CC: gcc -std=gnu99 configure: CXX: g++ configure: : checking for gdal-config... /usr/bin/gdal-config checking gdal-config usability... yes configure: GDAL: 2.1.0 checking GDAL version >= 2.0.0... yes checking for gcc... gcc -std=gnu99 checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc -std=gnu99 accepts -g... yes checking for gcc -std=gnu99 option to accept ISO C89... none needed checking how to run the C preprocessor... gcc -std=gnu99 -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking gdal.h usability... yes checking gdal.h presence... yes checking for gdal.h... yes checking GDAL: linking with --libs only... yes checking GDAL: /usr/share/gdal/2.1/pcs.csv readable... yes checking GDAL: checking whether PROJ.4 is available for linking:... yes checking GDAL: checking whether PROJ.4 is available fur running:... yes checking proj_api.h usability... yes checking proj_api.h presence... yes checking for proj_api.h... yes checking for pj_init_plus in -lproj... yes checking PROJ.4: epsg found and readable... yes proj_conf_test.c: In function 'main': proj_conf_test.c:5:5: error: unknown type name 'PAFile' PAFile fp; ^ proj_conf_test.c:8:5: warning: implicit declaration of function 'pj_open_lib' [-Wimplicit-function-declaration] fp = pj_open_lib(ctx, "conus", "rb"); ^ proj_conf_test.c:9:12: warning: comparison between pointer and integer [enabled by default] if (fp == NULL) exit(1); ^ proj_conf_test.c:10:5: warning: implicit declaration of function 'pj_ctx_fclose' [-Wimplicit-function-declaration] pj_ctx_fclose(ctx, fp); ^ ./configure: line 3834: ./proj_conf_test: No such file or directory checking PROJ.4: conus found and readable... yes checking geos-config usability... yes configure: GEOS: 3.5.0 checking GEOS version >= 3.3.0... yes checking geos_c.h usability... yes checking geos_c.h presence... yes checking for geos_c.h... yes checking geos: linking with -lgeos_c... yes checking for lwgeom_version in -llwgeom... no configure: error: in `/tmp/RtmpKLmhyt/devtools9fd11eb9c3/edzer-sfr-d620f3b': configure: error: lwgeom test failed (--without-readline to disable) See `config.log' for more details ERROR: configuration failed for package ‘sf’ * removing ‘/home/mlt244/R/x86_64-pc-linux-gnu-library/3.3/sf’ * restoring previous ‘/home/mlt244/R/x86_64-pc-linux-gnu-library/3.3/sf’ Error: Command failed (1) On Wed, Mar 15, 2017 at 6:14 PM, Michael Tregliawrote: > Wow - thanks so much for this quick fix, Edzer! I like your solution to > having syntatically different but semantically identical proj4string. Will > try this in a bit, and write back if I have any issues. > Best, > mike > > On Wed, Mar 15, 2017 at 5:58 PM, Edzer Pebesma < > edzer.pebe...@uni-muenster.de> wrote: > >> Great question! Short answer: now solved in the dev version on github; >> data are written directly to postgis having epsg 2263. >> >> >> Long answer: >> >> I believe this was caused by gdal and proj.4 doing different things when >> resolving epsg codes to proj4strings. sf uses proj.4 for this. When >> writing a proj4string either gdal or postgis don't recognize the >> proj4string that proj.4 returns on the epsg
Re: [R-sig-Geo] Maintain SRID with st_write to postgis db
Wow - thanks so much for this quick fix, Edzer! I like your solution to having syntatically different but semantically identical proj4string. Will try this in a bit, and write back if I have any issues. Best, mike On Wed, Mar 15, 2017 at 5:58 PM, Edzer Pebesma < edzer.pebe...@uni-muenster.de> wrote: > Great question! Short answer: now solved in the dev version on github; > data are written directly to postgis having epsg 2263. > > > Long answer: > > I believe this was caused by gdal and proj.4 doing different things when > resolving epsg codes to proj4strings. sf uses proj.4 for this. When > writing a proj4string either gdal or postgis don't recognize the > proj4string that proj.4 returns on the epsg code. Neither gdal nor > postgis understand that syntactically different proj4strings may be > semantically identical. > > > After running your example, in postgis > > # select proj4text from spatial_ref_sys where SRID = 900914; > > gives: > > +proj=lcc +lat_1=41.03 +lat_2=40.66 > +lat_0=40.16 +lon_0=-74 +x_0=30 +y_0=0 +ellps=GRS80 > +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs > > # select proj4text from spatial_ref_sys where SRID = 2263; > > gives: > > +proj=lcc +lat_1=41.03 +lat_2=40.66 > +lat_0=40.16 +lon_0=-74 +x_0=30.01 +y_0=0 > +datum=NAD83 +units=us-ft +no_defs > > sf causes this: > > > st_crs(2263) > $epsg > [1] 2263 > > $proj4string > [1] "+proj=lcc +lat_1=41.03 +lat_2=40.66 > +lat_0=40.16 +lon_0=-74 +x_0=30.01 +y_0=0 > +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs" > > attr(,"class") > [1] "crs" > > because it uses proj.4 directly to resolve SRID strings: > > /usr/share/proj/epsg has: > > # NAD83 / New York Long Island (ftUS) > <2263> +proj=lcc +lat_1=41.03 +lat_2=40.66 > +lat_0=40.16 +lon_0=-74 +x_0=30.01 +y_0=0 > +datum=NAD83 +units=us-ft +no_defs <> > > > The change I made to sf ( > https://github.com/edzer/sfr/commit/d620f3b748d487bae910e3884c554f > a9e3ce7090) > now first asks gdal to resolve the epsg (in case it is not NA), and > otherwise resolve the proj4string (if not NA), instead of ONLY trying to > resolve a non-NA proj4string. > > On 15/03/17 20:50, Michael Treglia wrote: > > Hi All, > > > > Been working to import and manipulate a CSV file with point data > > (lat/long), and then export to a PostGIS db. > > > > Overall, successful, but one thing I'd like to fix - when I write out the > > layer to postgis, the SRID is not maintained. The final EPSG/SRID should > be > > 2263, but when I check in PostGIS, it comes up as 900914. > > > > Below is my code and sessionInfo, and the data are from here: > > https://data.cityofnewyork.us/Public-Safety/NYPD-Complaint- > Data-Current-YTD/5uac-w243 > > (downloaded as plain old CSV) > > > > Anything I might be missing? Thanks in advance for giving a quick look! > > Mike > > > > > > ##Start Code > > > > #load packages > > library(sf) > > library(RPostgreSQL) > > > > #read data > > crime_current <- read.csv("NYPD_Complaint_Data_Current_YTD.csv", > > stringsAsFactors = FALSE) > > > > #format time columns for easier reading in postgres (I think), as keeping > > as date format caused problems in export > > crime_current$CMPLNT_FR_TIME <- > > as.character(as.POSIXct(paste(crime_current$CMPLNT_FR_DT, > > crime_current$CMPLNT_FR_TM), format="%m/%d/%Y\ %H:%M", tz="")) > > crime_current$CMPLNT_TO_TIME <- > > as.character(as.POSIXct(paste(crime_current$CMPLNT_TO_DT, > > crime_current$CMPLNT_TO_TM), format="%m/%d/%Y\ %H:%M", tz="")) > > crime_current$RPT_DT <- as.character(as.POSIXct(crime_current$RPT_DT, > > format="%m/%d/%Y", tz="")) > > > > #convert to sf object > > crime_current.sf <- st_as_sf(crime_current, coords = c("Longitude", > > "Latitude"), crs = 4326) > > #reproject to EPSG 2263 > > crime_current.sf <- st_transform(crime_current.sf, crs=2263) > > > > #write to postgres > > st_write(crime_current.sf, "PG:dbname=mydb user=user host=xx.xx.xx.xx", > > 'health_safety.crime_current') > > ###End Code > > > > > > > >> sessionInfo() > > R version 3.3.1 (2016-06-21) > > Platform: x86_64-pc-linux-gnu (64-bit) > > Running under: Ubuntu 14.04.5 LTS > > > > locale: > > [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C > > LC_TIME=en_US.UTF-8LC_COLLATE=en_US.UTF-8 > > [5] LC_MONETARY=en_US.UTF-8LC_MESSAGES=en_US.UTF-8 > > LC_PAPER=en_US.UTF-8 LC_NAME=C > > [9] LC_ADDRESS=C LC_TELEPHONE=C > > LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C > > > > attached base packages: > > [1] stats graphics grDevices utils datasets methods base > > > > other attached packages: > > [1] sp_1.2-3 RPostgreSQL_0.4-1 DBI_0.6 sf_0.3-4 > > > > loaded via a namespace (and not attached): > > [1] tools_3.3.1 units_0.4-2 Rcpp_0.12.9 udunits2_0.13 > > grid_3.3.1 lattice_0.20-33 > > > > [[alternative HTML version
Re: [R-sig-Geo] Sentienl 2 gdal translate
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] Maintain SRID with st_write to postgis db
Hi Chris, Thanks for that insight - I hadn't caught that part of the vignette (it had admittedly been a bit since I last looked at it), and I appreciate your interpretation. What you say makes sense to me, reading through that, and I can naturally add code to set the SRID in PostGIS pretty easily. Best, Mike On Wed, Mar 15, 2017 at 5:21 PM, chris english < englishchristoph...@gmail.com> wrote: > Michael, > > this from the sf vignettes on read write to databases: > > The dsn and layer arguments to st_read and st_write denote a data source > name and optionally a layer name. Their exact interpretation as well as the > options they support vary per driver, the GDAL driver documentation is best > consulted for this. For instance, a PostGIS table in database postgis might > be read by > > meuse <- st_read("PG:dbname=postgis", "meuse") > > where the PG: string indicates this concerns the PostGIS driver, followed > by database name, and possibly port and user credentials. > > st_read typically reads the coordinate reference system as proj4string, > but not the EPSG (SRID). GDAL cannot retrieve SRID (EPSG code) from > proj4string strings, and, when needed, it has to be set by the user. > > I just re-read this this morning for my own understanding, and the > statements regarding st_read would appear to apply as explicitly to > st_write as both or mediated by GDAL, that processes proj4string(s) but not > epsg. So it looks like manually setting or resetting epsg is part of the > workflow. Further down in the crs section is discussion about how within a > layer both proj4string and epsg must be the same, or NA. This may localize > where the 900914 is being applied, i.e. in PostGIS to settle the table > parameters. > > HTH, > > Chris > > > > > > On Wed, Mar 15, 2017 at 3:50 PM, Michael Treglia> wrote: > >> Hi All, >> >> Been working to import and manipulate a CSV file with point data >> (lat/long), and then export to a PostGIS db. >> >> Overall, successful, but one thing I'd like to fix - when I write out the >> layer to postgis, the SRID is not maintained. The final EPSG/SRID should >> be >> 2263, but when I check in PostGIS, it comes up as 900914. >> >> Below is my code and sessionInfo, and the data are from here: >> https://data.cityofnewyork.us/Public-Safety/NYPD-Complaint-D >> ata-Current-YTD/5uac-w243 >> (downloaded as plain old CSV) >> >> Anything I might be missing? Thanks in advance for giving a quick look! >> Mike >> >> >> ##Start Code >> >> #load packages >> library(sf) >> library(RPostgreSQL) >> >> #read data >> crime_current <- read.csv("NYPD_Complaint_Data_Current_YTD.csv", >> stringsAsFactors = FALSE) >> >> #format time columns for easier reading in postgres (I think), as keeping >> as date format caused problems in export >> crime_current$CMPLNT_FR_TIME <- >> as.character(as.POSIXct(paste(crime_current$CMPLNT_FR_DT, >> crime_current$CMPLNT_FR_TM), format="%m/%d/%Y\ %H:%M", tz="")) >> crime_current$CMPLNT_TO_TIME <- >> as.character(as.POSIXct(paste(crime_current$CMPLNT_TO_DT, >> crime_current$CMPLNT_TO_TM), format="%m/%d/%Y\ %H:%M", tz="")) >> crime_current$RPT_DT <- as.character(as.POSIXct(crime_current$RPT_DT, >> format="%m/%d/%Y", tz="")) >> >> #convert to sf object >> crime_current.sf <- st_as_sf(crime_current, coords = c("Longitude", >> "Latitude"), crs = 4326) >> #reproject to EPSG 2263 >> crime_current.sf <- st_transform(crime_current.sf, crs=2263) >> >> #write to postgres >> st_write(crime_current.sf, "PG:dbname=mydb user=user host=xx.xx.xx.xx", >> 'health_safety.crime_current') >> ###End Code >> >> >> >> > sessionInfo() >> R version 3.3.1 (2016-06-21) >> Platform: x86_64-pc-linux-gnu (64-bit) >> Running under: Ubuntu 14.04.5 LTS >> >> locale: >> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C >> LC_TIME=en_US.UTF-8LC_COLLATE=en_US.UTF-8 >> [5] LC_MONETARY=en_US.UTF-8LC_MESSAGES=en_US.UTF-8 >> LC_PAPER=en_US.UTF-8 LC_NAME=C >> [9] LC_ADDRESS=C LC_TELEPHONE=C >> LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C >> >> attached base packages: >> [1] stats graphics grDevices utils datasets methods base >> >> other attached packages: >> [1] sp_1.2-3 RPostgreSQL_0.4-1 DBI_0.6 sf_0.3-4 >> >> loaded via a namespace (and not attached): >> [1] tools_3.3.1 units_0.4-2 Rcpp_0.12.9 udunits2_0.13 >> grid_3.3.1 lattice_0.20-33 >> >> [[alternative HTML version deleted]] >> >> ___ >> 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] Maintain SRID with st_write to postgis db
Michael, this from the sf vignettes on read write to databases: The dsn and layer arguments to st_read and st_write denote a data source name and optionally a layer name. Their exact interpretation as well as the options they support vary per driver, the GDAL driver documentation is best consulted for this. For instance, a PostGIS table in database postgis might be read by meuse <- st_read("PG:dbname=postgis", "meuse") where the PG: string indicates this concerns the PostGIS driver, followed by database name, and possibly port and user credentials. st_read typically reads the coordinate reference system as proj4string, but not the EPSG (SRID). GDAL cannot retrieve SRID (EPSG code) from proj4string strings, and, when needed, it has to be set by the user. I just re-read this this morning for my own understanding, and the statements regarding st_read would appear to apply as explicitly to st_write as both or mediated by GDAL, that processes proj4string(s) but not epsg. So it looks like manually setting or resetting epsg is part of the workflow. Further down in the crs section is discussion about how within a layer both proj4string and epsg must be the same, or NA. This may localize where the 900914 is being applied, i.e. in PostGIS to settle the table parameters. HTH, Chris On Wed, Mar 15, 2017 at 3:50 PM, Michael Tregliawrote: > Hi All, > > Been working to import and manipulate a CSV file with point data > (lat/long), and then export to a PostGIS db. > > Overall, successful, but one thing I'd like to fix - when I write out the > layer to postgis, the SRID is not maintained. The final EPSG/SRID should be > 2263, but when I check in PostGIS, it comes up as 900914. > > Below is my code and sessionInfo, and the data are from here: > https://data.cityofnewyork.us/Public-Safety/NYPD-Complaint- > Data-Current-YTD/5uac-w243 > (downloaded as plain old CSV) > > Anything I might be missing? Thanks in advance for giving a quick look! > Mike > > > ##Start Code > > #load packages > library(sf) > library(RPostgreSQL) > > #read data > crime_current <- read.csv("NYPD_Complaint_Data_Current_YTD.csv", > stringsAsFactors = FALSE) > > #format time columns for easier reading in postgres (I think), as keeping > as date format caused problems in export > crime_current$CMPLNT_FR_TIME <- > as.character(as.POSIXct(paste(crime_current$CMPLNT_FR_DT, > crime_current$CMPLNT_FR_TM), format="%m/%d/%Y\ %H:%M", tz="")) > crime_current$CMPLNT_TO_TIME <- > as.character(as.POSIXct(paste(crime_current$CMPLNT_TO_DT, > crime_current$CMPLNT_TO_TM), format="%m/%d/%Y\ %H:%M", tz="")) > crime_current$RPT_DT <- as.character(as.POSIXct(crime_current$RPT_DT, > format="%m/%d/%Y", tz="")) > > #convert to sf object > crime_current.sf <- st_as_sf(crime_current, coords = c("Longitude", > "Latitude"), crs = 4326) > #reproject to EPSG 2263 > crime_current.sf <- st_transform(crime_current.sf, crs=2263) > > #write to postgres > st_write(crime_current.sf, "PG:dbname=mydb user=user host=xx.xx.xx.xx", > 'health_safety.crime_current') > ###End Code > > > > > sessionInfo() > R version 3.3.1 (2016-06-21) > Platform: x86_64-pc-linux-gnu (64-bit) > Running under: Ubuntu 14.04.5 LTS > > locale: > [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C > LC_TIME=en_US.UTF-8LC_COLLATE=en_US.UTF-8 > [5] LC_MONETARY=en_US.UTF-8LC_MESSAGES=en_US.UTF-8 > LC_PAPER=en_US.UTF-8 LC_NAME=C > [9] LC_ADDRESS=C LC_TELEPHONE=C > LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > other attached packages: > [1] sp_1.2-3 RPostgreSQL_0.4-1 DBI_0.6 sf_0.3-4 > > loaded via a namespace (and not attached): > [1] tools_3.3.1 units_0.4-2 Rcpp_0.12.9 udunits2_0.13 > grid_3.3.1 lattice_0.20-33 > > [[alternative HTML version deleted]] > > ___ > 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
[R-sig-Geo] Maintain SRID with st_write to postgis db
Hi All, Been working to import and manipulate a CSV file with point data (lat/long), and then export to a PostGIS db. Overall, successful, but one thing I'd like to fix - when I write out the layer to postgis, the SRID is not maintained. The final EPSG/SRID should be 2263, but when I check in PostGIS, it comes up as 900914. Below is my code and sessionInfo, and the data are from here: https://data.cityofnewyork.us/Public-Safety/NYPD-Complaint-Data-Current-YTD/5uac-w243 (downloaded as plain old CSV) Anything I might be missing? Thanks in advance for giving a quick look! Mike ##Start Code #load packages library(sf) library(RPostgreSQL) #read data crime_current <- read.csv("NYPD_Complaint_Data_Current_YTD.csv", stringsAsFactors = FALSE) #format time columns for easier reading in postgres (I think), as keeping as date format caused problems in export crime_current$CMPLNT_FR_TIME <- as.character(as.POSIXct(paste(crime_current$CMPLNT_FR_DT, crime_current$CMPLNT_FR_TM), format="%m/%d/%Y\ %H:%M", tz="")) crime_current$CMPLNT_TO_TIME <- as.character(as.POSIXct(paste(crime_current$CMPLNT_TO_DT, crime_current$CMPLNT_TO_TM), format="%m/%d/%Y\ %H:%M", tz="")) crime_current$RPT_DT <- as.character(as.POSIXct(crime_current$RPT_DT, format="%m/%d/%Y", tz="")) #convert to sf object crime_current.sf <- st_as_sf(crime_current, coords = c("Longitude", "Latitude"), crs = 4326) #reproject to EPSG 2263 crime_current.sf <- st_transform(crime_current.sf, crs=2263) #write to postgres st_write(crime_current.sf, "PG:dbname=mydb user=user host=xx.xx.xx.xx", 'health_safety.crime_current') ###End Code > sessionInfo() R version 3.3.1 (2016-06-21) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Ubuntu 14.04.5 LTS locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=en_US.UTF-8LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] sp_1.2-3 RPostgreSQL_0.4-1 DBI_0.6 sf_0.3-4 loaded via a namespace (and not attached): [1] tools_3.3.1 units_0.4-2 Rcpp_0.12.9 udunits2_0.13 grid_3.3.1 lattice_0.20-33 [[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] Sentienl 2 gdal translate
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] loop memory problem
Hi again, I read in the guide of foreach that include the packages was a good idea. Now the parallel loop is runing but at the end I got only one spatial line (the first) I don't understand why is not adding the other spatiallines. Any idea? ###3)dopar% library(doSNOW) registerDoSEQ() registerDoParallel(cores=10) getDoParWorkers() line2<- gdistance::shortestPath(trCostS16, pos@coords[13,],pos@coords[12,], output="SpatialLines")# x<-foreach(i=2:13,.packages=c("gdistance","doParallel","foreach","base","sp")) %dopar% { nextSegment2=gdistance::shortestPath(trCostS16, pos@coords[i,],pos@coords[i+1,], output="SpatialLines") line2 =nextSegment2+line2 print(i)} stopCluster(cl) registerDoSEQ() Thanks in advance, Marta files https://drive.google.com/open?id=0BwqSBe1Yq-FBUWVBOUdvaThEU1k [[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] Same mask for two rasters, but obtaining different extents in R
The most likely explanation seems to me that the rasters were not aligned before cropping, so they are not aligned after cropping. Have you checked the original extent and resolution? Sarah On Tue, Mar 14, 2017 at 5:31 PM, Vijay Ramesh via R-sig-Geowrote: > I loaded a shapefile in R, and cropped and masked it with the same mask, > but I get different extents. Any suggestions? > > Code below: > > library(raster) > library(rgdal) > library(GISTools) > library(sp) > library(maptools) > > ##Loading the first mask > Mask <- readOGR("C:\\Users\\rameshv\\Downloads\\Climate > Stability\\SPV_Mask\\mask.shp") > proj4string(Mask) <- CRS("+init=epsg:4326") > > #Loading the Rasters For Present and LGM and clipping them to the right > extent > bio5 <- raster("C:\\Users\\rameshv\\Downloads\\Climate > Stability\\Data_LGM_Present\\Present\\1_RawData\\bio_5") > proj4string(bio5) <- CRS("+init=epsg:4326") > lg5 <- raster("C:\\Users\\rameshv\\Downloads\\Climate > Stability\\Data_LGM_Present\\LGM\\1_RawData\\cclgmbi5.tif") > proj4string(lg5) <- CRS("+init=epsg:4326") > > ##Cropping by using the Crop and Mask functions > cr<- crop(bio5, extent(Mask)) > bio5 <- mask(cr, Mask) > > cr2<- crop(lg5, extent(Mask)) > lg5<- mask(cr2, Mask) > > > bio5 > class : RasterLayer > dimensions : 339, 246, 83394 (nrow, ncol, ncell) > resolution : 0.0417, 0.0417 (x, y) > extent : 72.45835, 82.70835, 8.083337, 22.20834 (xmin, xmax, > ymin, ymax) > coord. ref. : +init=epsg:4326 +proj=longlat +datum=WGS84 +no_defs > +ellps=WGS84 +towgs84=0,0,0 > data source : in memory > names : bio_5 > values : 207, 432 (min, max) > attributes : > ID COUNT > from: -86 1 > to : 48938 > > > lg5 > class : RasterLayer > dimensions : 339, 246, 83394 (nrow, ncol, ncell) > resolution : 0.0417, 0.0417 (x, y) > extent : 72.45833, 82.70833, 8.08, 22.20833 (xmin, xmax, > ymin, ymax) > coord. ref. : +init=epsg:4326 +proj=longlat +datum=WGS84 +no_defs > +ellps=WGS84 +towgs84=0,0,0 > data source : in memory > names : cclgmbi5 > values : 187, 392 (min, max) > > -- Sarah Goslee http://www.functionaldiversity.org ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Re: [R-sig-Geo] Same mask for two rasters, but obtaining different extents in R
Hi, Might you show us what bio5 and lg5 look like before you do the masking? Cheers, Ben > On Mar 14, 2017, at 5:31 PM, Vijay Ramesh via R-sig-Geo >wrote: > > I loaded a shapefile in R, and cropped and masked it with the same mask, > but I get different extents. Any suggestions? > > Code below: > >library(raster) >library(rgdal) >library(GISTools) >library(sp) >library(maptools) > >##Loading the first mask >Mask <- readOGR("C:\\Users\\rameshv\\Downloads\\Climate > Stability\\SPV_Mask\\mask.shp") >proj4string(Mask) <- CRS("+init=epsg:4326") > >#Loading the Rasters For Present and LGM and clipping them to the right > extent >bio5 <- raster("C:\\Users\\rameshv\\Downloads\\Climate > Stability\\Data_LGM_Present\\Present\\1_RawData\\bio_5") >proj4string(bio5) <- CRS("+init=epsg:4326") >lg5 <- raster("C:\\Users\\rameshv\\Downloads\\Climate > Stability\\Data_LGM_Present\\LGM\\1_RawData\\cclgmbi5.tif") >proj4string(lg5) <- CRS("+init=epsg:4326") > >##Cropping by using the Crop and Mask functions >cr<- crop(bio5, extent(Mask)) >bio5 <- mask(cr, Mask) > >cr2<- crop(lg5, extent(Mask)) >lg5<- mask(cr2, Mask) > >> bio5 > class : RasterLayer > dimensions : 339, 246, 83394 (nrow, ncol, ncell) > resolution : 0.0417, 0.0417 (x, y) > extent : 72.45835, 82.70835, 8.083337, 22.20834 (xmin, xmax, > ymin, ymax) > coord. ref. : +init=epsg:4326 +proj=longlat +datum=WGS84 +no_defs > +ellps=WGS84 +towgs84=0,0,0 > data source : in memory > names : bio_5 > values : 207, 432 (min, max) > attributes : >ID COUNT > from: -86 1 > to : 48938 > >> lg5 > class : RasterLayer > dimensions : 339, 246, 83394 (nrow, ncol, ncell) > resolution : 0.0417, 0.0417 (x, y) > extent : 72.45833, 82.70833, 8.08, 22.20833 (xmin, xmax, > ymin, ymax) > coord. ref. : +init=epsg:4326 +proj=longlat +datum=WGS84 +no_defs > +ellps=WGS84 +towgs84=0,0,0 > data source : in memory > names : cclgmbi5 > values : 187, 392 (min, max) > > > -- > Data Manager, > Barbara Han Lab, > Cary Institute of Ecosystem Studies, > 2801 Sharon Turnpike, Millbrook, NY 12545 > Lab Site : http://www.hanlab.science/ > Personal Site : http://evolecol.weebly.com/ > Phone : (845)-677-7600 Ext: 241 > > [[alternative HTML version deleted]] > > ___ > R-sig-Geo mailing list > R-sig-Geo@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-sig-geo Ben Tupper Bigelow Laboratory for Ocean Sciences 60 Bigelow Drive, P.O. Box 380 East Boothbay, Maine 04544 http://www.bigelow.org ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
[R-sig-Geo] Same mask for two rasters, but obtaining different extents in R
I loaded a shapefile in R, and cropped and masked it with the same mask, but I get different extents. Any suggestions? Code below: library(raster) library(rgdal) library(GISTools) library(sp) library(maptools) ##Loading the first mask Mask <- readOGR("C:\\Users\\rameshv\\Downloads\\Climate Stability\\SPV_Mask\\mask.shp") proj4string(Mask) <- CRS("+init=epsg:4326") #Loading the Rasters For Present and LGM and clipping them to the right extent bio5 <- raster("C:\\Users\\rameshv\\Downloads\\Climate Stability\\Data_LGM_Present\\Present\\1_RawData\\bio_5") proj4string(bio5) <- CRS("+init=epsg:4326") lg5 <- raster("C:\\Users\\rameshv\\Downloads\\Climate Stability\\Data_LGM_Present\\LGM\\1_RawData\\cclgmbi5.tif") proj4string(lg5) <- CRS("+init=epsg:4326") ##Cropping by using the Crop and Mask functions cr<- crop(bio5, extent(Mask)) bio5 <- mask(cr, Mask) cr2<- crop(lg5, extent(Mask)) lg5<- mask(cr2, Mask) > bio5 class : RasterLayer dimensions : 339, 246, 83394 (nrow, ncol, ncell) resolution : 0.0417, 0.0417 (x, y) extent : 72.45835, 82.70835, 8.083337, 22.20834 (xmin, xmax, ymin, ymax) coord. ref. : +init=epsg:4326 +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 data source : in memory names : bio_5 values : 207, 432 (min, max) attributes : ID COUNT from: -86 1 to : 48938 > lg5 class : RasterLayer dimensions : 339, 246, 83394 (nrow, ncol, ncell) resolution : 0.0417, 0.0417 (x, y) extent : 72.45833, 82.70833, 8.08, 22.20833 (xmin, xmax, ymin, ymax) coord. ref. : +init=epsg:4326 +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 data source : in memory names : cclgmbi5 values : 187, 392 (min, max) -- Data Manager, Barbara Han Lab, Cary Institute of Ecosystem Studies, 2801 Sharon Turnpike, Millbrook, NY 12545 Lab Site : http://www.hanlab.science/ Personal Site : http://evolecol.weebly.com/ Phone : (845)-677-7600 Ext: 241 [[alternative HTML version deleted]] ___ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo