คำถามติดแท็ก r

ภาษาคอมพิวเตอร์เชิงสถิติและสภาพแวดล้อมของซอฟต์แวร์

1
เสริมกำลังทำให้รูปหลายเหลี่ยมฉีกขาด
ฉันมีปัญหาในการวางแผนข้อมูลเชิงพื้นที่โดยใช้ ggplot2 แผนที่ดูดีเมื่อพล็อตโดยใช้ spplot ดังนั้นฉันสมมติว่าการฉีกขาดเกิดขึ้นที่เวทีเสริม รหัสดังต่อไปนี้: #install the packages library(rgdal) library(mapproj) library(raster) library(rgeos) library(ggplot2) library(plyr) if (!require(gpclib)) install.packages("gpclib", type="source") gpclibPermit() setwd("C:/Users/My Documents") #read in laa to regional mapping #must aggregate to higher level regions as data is provided at this higher level laa_region_mapping <- read.csv("laa_region.csv", header = TRUE) #read in …
10 r  ggplot2  rgeos 

2
การจำแนกประเภทที่ไม่ได้รับอนุญาตกับ kmeans ใน R
ฉันมีอนุกรมเวลาของภาพถ่ายดาวเทียม (5 แบนด์) และต้องการจำแนกพวกมันโดย kmeans ใน R สคริปต์ของฉันทำงานได้ดี (วนผ่านรูปภาพของฉันแปลงภาพเป็น data.frame จัดกลุ่มพวกมันแล้วแปลงกลับเป็น แรสเตอร์): for (n in files) { image <- stack(n) image <- clip(image,subset) ###classify raster image.df <- as.data.frame(image) cluster.image <- kmeans(na.omit(image.df), 10, iter.max = 10, nstart = 25) ### kmeans, with 10 clusters #add back NAs using the NAs in …
10 r  classification 

1
วิธีกำหนดสีให้กับค่าแรสเตอร์เฉพาะโดยใช้ R
ฉันกำลังใช้levelplotฟังก์ชั่นของrasterVisแพ็คเกจสุดเจ๋งเพื่อสร้างแผนที่ที่มีค่าต่างกันประมาณศูนย์ ฉันกำลังวางแผนไฟล์แรสเตอร์โดยใช้จานสีแดงเป็นสีน้ำเงิน แต่ฉันพยายามกำหนดค่าสีเทาให้เป็นศูนย์ในแผนที่ โดยเฉพาะฉันต้องการทำซ้ำสีของรูปนี้: ขอให้สังเกตว่ามีการใช้ระดับสีแดงถึงสีน้ำเงิน แต่ค่าศูนย์มีการใช้สีเทา ขณะนี้แผนที่ของฉันมีลักษณะดังนี้: และนี่คือรหัสที่จะทำซ้ำ (ไฟล์มีอยู่ที่https://www.dropbox.com/s/cypfdu1eaz2fuok/r.annual.tif?dl=0 ): # Load required packages library(rasterVis) # open file r.annual <- raster("Downloads/r.annual.tif") # Set color palette myTheme=rasterTheme(region=brewer.pal('RdBu', n=11)) # Plot levelplot(annual.mask, par.settings=myTheme, margin=F) ฉันจะกำหนดสีเทาให้กับค่าศูนย์ทั้งหมดในแผนที่ของฉันด้านบนได้อย่างไร

1
ใช้ R เพื่อดึงข้อมูลจาก WorldClim? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับระบบแลกเปลี่ยนข้อมูลทางภูมิศาสตร์ของกองซ้อน ปิดให้บริการใน9 เดือนที่ผ่านมา ฉันมีชุดข้อมูลที่มีค่าละติจูด - ลองจิจูดยาว 1,000 ค่า ฉันต้องการแยกอุณหภูมิเฉลี่ยรายปีและปริมาณน้ำฝนประจำปีสำหรับแต่ละพิกัดเหล่านี้ ข้อมูลเหล่านี้สามารถรับได้จากWorldClimและประมวลผลโดยใช้ DIVA-GIS อย่างไรก็ตามมีการทำเช่นนี้ใน R? ฉันต้องการให้ผลลัพธ์สุดท้ายของฉันเป็น dataframe ที่มีอุณหภูมิรายปีและปริมาณน้ำฝนสำหรับแต่ละพิกัด ฉันใหม่ที่ GIS ใน R ดังนั้นฉันจึงค้นหาโค้ดพื้นฐานพร้อมกับไลบรารีที่จำเป็นสำหรับผลลัพธ์นี้
9 r  climate  extract 

1
การประมวลผลเวกเตอร์เป็นแรสเตอร์เร็วขึ้นด้วย R
ฉันกำลังแปลงเวกเตอร์เป็นแรสเตอร์ใน R อย่างไรก็ตามกระบวนการนี้ยาวเกินไป มีความเป็นไปได้ไหมที่จะนำสคริปต์ไปใช้ในการประมวลผลแบบมัลติเธรดหรือ GPU เพื่อให้เร็วขึ้น? สคริปต์ของฉันเป็นเวกเตอร์ที่แรสเตอร์ r.raster = raster() extent(r.raster) = extent(setor) #definindo o extent do raster res(r.raster) = 10 #definindo o tamanho do pixel setor.r = rasterize(setor, r.raster, 'dens_imov') r.raster คลาส: RasterLayer ขนาด: 9636, 11476, 110582736 (nrow, ncol, ncell) ความละเอียด: 10, 10 (x, y) ขอบเขต: 505755, 620515, 8555432, …

2
ggmap: รูปหลายเหลี่ยมพล็อตจาก shapefile
ใช้ ggmap ฉันต้องการรวมเขตเทศบาล (รูปหลายเหลี่ยม) จาก shapefile บนแผนที่ที่มีจุดสถานที่ตั้งบางจุด สคริปต์นี้ทำทุกอย่างยกเว้นการวางแผนรูปหลายเหลี่ยม: library(rgdal) library(ggmap) # Get shapefile with Drammen municipality borders tmpzip<-tempfile() tmpdir<-tempfile() dir.create(tmpdir) download.file("http://www.kartverket.no/Documents/Kart/N50-N5000%20Kartdata/33_N5000_shape.zip",tmpzip) unzip(tmpzip, exdir=tmpdir) kommune <- readOGR(dsn=tmpdir, layer="NO_AdminOmrader_pol") kommune<-kommune[kommune$NAVN=="Drammen",] kommune<-spTransform(kommune, CRS("+init=epsg:4326")) # Get location point data subscr<-data.frame(lon=c(10.1237,10.2161,10.2993),lat=c(59.7567,59.7527,59.6863), pop=c(58,12,150)) coordinates(subscr)<-~lon+lat proj4string(subscr)<-CRS("+init=epsg:4326") lon <- c(10.0937,10.3293) lat <- c(59.7916,59.6563) map <- get_map(location = c(lon[1], …
9 shapefile  r  ggmap 

1
ลดระยะห่างระหว่างไอเท็มในตำนานใน R หรือไม่?
ฉันพยายามสร้างchoropleth()แผนที่ที่ถูกต้องใน R โดยใช้GISToolsแพ็คเกจ ฉันใช้choro.legend()แสดงตำนานของฉัน อย่างไรก็ตามฉันไม่สามารถสร้างตำแหน่งคำอธิบายแผนภูมิที่ถูกต้องได้และ / หรือฉันไม่เข้าใจบทบาทของfmtพารามิเตอร์ในchoro.legend()ฟังก์ชันของฉัน ดูเหมือนว่าฉันfmtสามารถลดช่องว่างระหว่างสีในตำนานและคำอธิบายของฉัน ผมพบว่าหน้าความช่วยเหลือ choro.legendที่รัฐfmtเป็น"รูปแบบสไตล์ C เป็นค่าที่ระบุไว้ในข้างต้นข้อ จำกัด ระดับ choropleth" ดังนั้นนี่ควรทำงานกับค่าคลาสของฉันไม่ใช่ระยะห่างระหว่างไอเท็มคำอธิบาย? หรือความหมายของมนุษย์ที่เข้าใจได้ของสิ่งนี้คืออะไร? ฉันจะลดระยะห่างระหว่างchoro.legend()สิ่งของของฉันได้อย่างไร choropleth(my.shp, nc.lI[,1], shading = income.shade) choro.legend(-12919698, 5314317,income.shade,title='My title',cex=0.8, bty = "n", fmt = "%0.1f")
9 r  legend  choropleth 

3
การสร้างคะแนนสุ่มจำนวนมากในไบนารีแรสเตอร์?
ฉันต้องการสร้างชุดข้อมูลเวกเตอร์แบบจุด 10,000 จุด (หรือใหญ่กว่า) ภายในไบนารีแรสเตอร์ซึ่งจุดควรถูก จำกัด พื้นที่ที่ค่าแรสเตอร์เป็น 1 ฉันลองทำตามขั้นตอนต่อไปนี้ รูปหลายเหลี่ยมแรสเตอร์ QGIS: Vector -> เครื่องมือวิจัย -> คะแนนสุ่ม วิธีนี้ใช้งานได้ดีมากถึง 2,000 คะแนน แต่สิ่งที่เหนือกว่าเพียงแค่ทำให้ QGIS ผิดพลาด มีวิธีในการสร้างชุดข้อมูลเวกเตอร์ที่มีคุณสมบัติจุดจำนวนมากที่ จำกัด โดยไบนารีแรสเตอร์ (หรือรุ่นที่มีรูปหลายเหลี่ยมของมัน) หรือไม่? เครื่องมือต่อไปนี้อยู่ในการกำจัดของฉันจัดอันดับจากที่นิยมมากไปน้อย: QGIS, Python, R, ArcGIS นี่คือสิ่งที่ฉันจะทำเพียง 10 เท่าที่มีคุณสมบัติจุด

1
ฉันจะสร้าง SpatialLinesDataFrame จาก dataframe ได้อย่างไร
ฉันได้สร้าง data.frame ใน R ฉันต้องการรับ SpatialLinesDataFrame ดังนั้นฉันเข้าใจว่าฉันต้องแปลง data.frame เป็นบรรทัดบรรทัดลงใน SpatialLines และ SpatialLines เป็น SpatialLinesDataFrame ฉันทำอย่างนี้ filedata.frame=data.frame(matrix(file),ncol=14, byrow=T)) file=Lines(filedata.frame) ฉันได้รับ data.frame ที่ฉันต้องการ แต่ไม่ใช่บรรทัด ฉันแน่ใจว่าพื้นฐาน แต่ทำไมฉันไม่สามารถรับสายได้
9 r  line 

1
ความแตกต่างระหว่าง gdalwarp และ projectRaster
ฉันพยายามฉายภาพแรสเตอร์ ใน R มีprojectRaster()ฟังก์ชั่นสำหรับสิ่งนี้ (ด้านล่างเป็นตัวอย่างที่ทำซ้ำได้อย่างสมบูรณ์): # example Raster require(raster) r <- raster(xmn=-110, xmx=-90, ymn=40, ymx=60, ncols=40, nrows=40) r <- setValues(r, 1:ncell(r)) projection(r) # project to newproj <- "+init=epsg:4714" # using raster package to reproject pr1 <- projectRaster(r, crs = CRS(newproj), method = 'bilinear') ซึ่งใช้งานได้ดี อย่างไรก็ตามมันค่อนข้างช้า เพื่อเพิ่มความเร็วฉันแม้ว่าจะใช้gdalwarpแทน (ด้วย SSD ค่าใช้จ่ายในการอ่านและเขียนจาก / …

1
วิธีอ่านไฟล์ * .adf ไปยัง R
ฉันต้องการโหลดไฟล์. adm ลงในอาร์ข้อมูลมาจากหน้านี้: http://www.fao.org/geonetwork/srv/en/metadata.show?id=14057 ฉันลองใช้รหัสต่อไปนี้ที่ฉันพบหลังจากการวิจัยในอินเทอร์เน็ต ปัญหาคือว่าในคลาส RasterLayer ฉันได้รับค่า negativ ที่ไม่ควรมี ฉันไม่รู้ว่าทำไมสิ่งนี้จึงเกิดขึ้นดังนั้นหวังว่าใครบางคนจะสามารถช่วยฉันได้! รหัส: library(rgdal) library(RColorBrewer) dpath<- path... x <- new("GDALReadOnlyDataset", dpath) getDriver(x) getDriverLongName(getDriver(x)) xx<-asSGDF_GROD(x) r <- raster(xx) ผลลัพธ์สำหรับ 'r' คือ: คลาส r: RasterLayer ขนาด: 2160, 4320, 9331200 (nrow, ncol, ncell) ความละเอียด: 0.08333333, 0.08333333 (x, y) ขอบเขต: -180, 180, -90, 90 (xmin, …

1
การนำเข้ารูปภาพแรสเตอร์ซ้อนหลายภาพใน R หรือไม่
ฉันต้องการนำเข้าแรสเตอร์โมเสคหลาย ๆ อัน (แต่ละโมเสคประกอบด้วย 7 ชั้น) จากโฟลเดอร์ที่ระบุลงในอาร์ของฉันจากนั้นเข้าถึงพวกมันเป็นแรสเตอร์แบบหลายเลเยอร์เดียว ดังนั้นฉันจึง: # read all mosaics named "mos....img" in R raster_data<-list.files(path=getwd(), pattern="mos.*.img$") # read files as rasters s <- stack(raster_data) # check my imported rasters p.ex. raster n°8 from "s" raster stack s[[8]] และแรสเตอร์ของฉัน [[8]] มีเพียงชั้นเดียวเท่านั้นดังนั้นจึงไม่มีการนำเข้าโมเสคทั้งหมด! nlayers(s[[8]]) [[1]] ถ้าฉันอ่านแต่ละโมเสกแยกกันมันใช้งานได้: # read 1 mosaic (composed …

2
บัฟเฟอร์และการรวมใน R โดยไม่ต้องลดให้เป็นหลายเหลี่ยม
ฉันต้องการแสดงภาพซ้อนทับเชิงพื้นที่เพื่อระบุรูปหลายเหลี่ยมที่มีจุดตก อย่างไรก็ตามก่อนอื่นฉันต้องการบัฟเฟอร์และยุบรูปหลายเหลี่ยมดังกล่าวที่จุดตกที่ใดก็ได้ภายในรูปหลายเหลี่ยมผสาน (แต่ไม่ได้อยู่ในหลุมใด ๆ ) จะถูกติดป้ายคล้ายกันโดยขั้นตอนการซ้อนทับ น่าเสียดายที่กระบวนการบัฟเฟอร์และ / หรือการละลายที่ใช้อยู่นั้นเป็นการลดSpatialPolygonsวัตถุให้เป็นรูปหลายเหลี่ยม การใช้gBufferจะสร้างหลายรูปหลายเหลี่ยมเมื่อbyid=FALSEแต่ไม่สามารถรวมรูปหลายเหลี่ยมที่ทับซ้อนกันได้เมื่อbyid=TRUEใด ในกรณีหลังนี้การละลายรูปหลายเหลี่ยมด้วยการgUnaryUnionสร้างรูปหลายเหลี่ยมอีกครั้ง การวางซ้อนSpatialPointsกับผลลัพธ์หลายเหลี่ยมหลายเหลี่ยมเหล่านี้ในทุกจุดที่มีการรายงานว่าอยู่ในรูปหลายเหลี่ยม 1 นี่คือตัวอย่างของเล่นที่เกี่ยวข้องกับคะแนนบัฟเฟอร์ที่ฉันต้องการทำซ้อนทับคะแนนกับรูปหลายเหลี่ยมบัฟเฟอร์: library(sp) library(rgeos) pts <- SpatialPoints(cbind(c(1, 1, 2, 3), c(1, 2, 1.5, 2.5))) plot(gBuffer(pts, width=0.6), lwd=2) points(pts, pch=20, cex=2) text(coordinates(pts), labels=seq_len(length(pts)), pos=4, font=2) และผลลัพธ์ของการวางซ้อนบางอย่าง ... ด้วยbyid=FALSE: b <- gBuffer(pts, width=0.6) over(pts, b) # [1] 1 1 1 …
9 r  sp 

3
วิธีการวัดความคล้ายคลึงกันของวัตถุ SpatialLines
ฉันสร้างสองSpatialLinesวัตถุใน R: วัตถุเหล่านี้ถูกสร้างขึ้นด้วยวิธีนี้: library(sp) xy <- cbind(x,y) xy.sp = sp::SpatialPoints(xy) spl1 <- sp::SpatialLines(list(Lines(Line(xy.sp), ID="a"))) ทีนี้ฉันอยากสรุปว่านี่คือเส้นตรงที่หมุนแล้วพลิกและความแตกต่างระหว่างพวกเขาเท่ากับ 0 (รูปร่างที่เท่ากัน) ในการทำเช่นนั้นเราสามารถใช้maptoolsแพ็คเกจและหมุนบรรทัดที่ 1 เช่น: spl180 <- maptools::elide(spl1, rotate=180) แต่ละบรรทัดที่หมุนแล้วจะต้องตรวจสอบเทียบกับบรรทัดที่ 2 โดยใช้rgeosแพ็คเกจเช่น: hdist <- rgeos::gDistance(spl180, spl2, byid=FALSE, hausdorff=TRUE) อย่างไรก็ตามนี่เป็นวิธีการคำนวณที่มีราคาแพงมากในการจับคู่SpatialLinesวัตถุโดยเฉพาะอย่างยิ่งหากจำนวนวัตถุมีค่าประมาณ 1,000 มีวิธีที่ฉลาดในการทำงานนี้หรือไม่? ป.ล. นอกจากนี้วิธีการที่อธิบายไว้ข้างต้นไม่รับประกันการหมุนและการพลิกที่เป็นไปได้ทั้งหมด P.S2 หากบรรทัดที่ 1 ถูกย่อส่วนด้วย # 2 ความแตกต่างระหว่างบรรทัด # 1 และ # 2 …

1
แปลงพิกัดจาก readShapePoly ใน R เป็น long-lat พิกัด
ฉันกำลังพยายามหาเซนทรอยด์บางส่วนของไฟล์รูปร่างสำหรับเทศบาลเดนมาร์กและหลังจากนั้นหาเวลาขับรถระหว่างพวกเขา ผมใช้RของreadShapePolyฟังก์ชั่นจากmaptoolsรวมกับgCentroidฟังก์ชั่นจากrgeosและผลงานทุกอย่าง อย่างไรก็ตามฉันได้รับ spatialpoints เช่น SpatialPoints: x y 1 571860.7 6225016 Coordinate Reference System (CRS) arguments: NA ซึ่งไม่ใช่สิ่งที่ชัดเจนที่ฉันสามารถใช้ใน Google เพื่อคว้าเวลาเดินทาง ฉันกำลังมองหาวิธีการแปลงตัวเลขเหล่านี้เป็นลองจิจูดละติจูด แต่ไม่มีความคิดวิธี เมื่อฉันอ่านข้อมูลโดยใช้readOGRจากrgdalห้องสมุดฉันได้รับพิกัดเดียวกัน แต่มันบอกฉันเกี่ยวกับสิ่งที่ฉันถือว่าเป็นเส้นโครง (แต่พิกัดเหมือนกัน) Slot "proj4string": CRS arguments: +proj=utm +zone=32 +ellps=intl +units=m +no_defs ตัวอย่างที่ทำซ้ำได้: ฉันใส่ข้อมูลสำหรับตัวอย่างที่นี่: https://github.com/sebastianbarfort/shapefiles สิ่งนี้ควรทำให้เกิดปัญหาซ้ำ: library(maptools) library(rgdal) library(rgeos) map = readShapePoly("~/Downloads/shapefiles-master/kommuner1983.shp") centroid = gCentroid(map) centroid

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.