יותר

בעיה בהחלקת מצולע ב- R


עם R אני מחפש להחליק את המצולע שלי: inter2.csv

קוד:

inter1 <- read.table ("c: /inter2.csv", header = TRUE) # הוסף קטגוריה (נדרש לרסטורינג / מצולע מאוחר יותר) inter1 <- cbind (inter1, cat = rep (1L, nrow (inter1)) , stringsAsFactors = FALSE) # להמיר לקואורדינטות של נקודות מרחביות (inter1) <- ~ long + lat # gridify את קבוצת הנקודות שלך ברשת (inter1) <- TRUE # להמיר לרסטר r <- raster (inter1) # להמיר raster ל- polygons sp <- rasterToPolygons (r, התמוסס = T) מגרש (sp) # טרנספורמציה תוספת כדי להבדיל היטב את קבוצה של מצולעים מצולעים <- חריץ (sp @ מצולעים [[1]], "מצולעים") דורשים (Hmisc) # עבור עקומת Bezier פלט <- SpatialPolygons (Srl = lapply (1: אורך (polys), פונקציה (x) {p <- polys [[x]] # החלת עקומת bezier להחלקת קצוות מצולעים px <- חריץ (polys [[x]], "coords") [, 1] py <- slot (polys [[x]], "coords") [, 2] bz <- bezier (px, py) slot (p, "coords)) <- as.matrix (cbind (bz $ x, bz $ y)) # create Polygons object poly <- Polygons (list (p), ID = x) return (poly)}), proj4string = CRS ("+ init = epsg: 4326") ) חלקת עלילה אחת (sp, border = "אפור", lwd = 2) עלילת תוצאה # מצולעת (פלט, גבול = "אדום", הוסף = TRUE) # מצולעים מוחלקים

אני מקבל את התוצאה הזו:

זה כמה ימים שאני מחפש את הבעיה ללא הצלחה, מישהו יכול לעזור לי בבקשה?


עדכנתי את הקוד המקורי שניתן כאן https://stackoverflow.com/questions/26087772/create-polygon-from-set-of-points-distributed/26089377#26089377

במקום החלקה מבוססת בזייר, תוכלו להשתמש בהחלקה המוצעת כאן / a / 24929/8104 עם הפונקציהspline.poly(כפי שהציע @aaron) שנותן תוצאות מדויקות.


צפו בסרטון: כיתות: ב מתמטיקה - בעיות מילוליות ב-6 צעדים (אוֹקְטוֹבֶּר 2021).