Dear all; Many thanks for your responses. Actually it is not completely a GIS file, it is a data file which stores meteorological data of a specific region. But the site allows downloading with grib format and as I searched to read this type of file in R, I found the Raster Package. In python it is possible to do this using cdsapi and xarray library, but I am not familiar with python. Sincerely
On Thu, Sep 26, 2024 at 2:33 AM Roy Mendelssohn - NOAA Federal via R-help < r-help@r-project.org> wrote: > At least for me the dataset file did not come through. I will look at it > if it can be made available. It does look like the finial step of reading > the data into raster failed, so then did the rest of th commands. > > -Roy > > > > On Sep 25, 2024, at 3:24 PM, CALUM POLWART <polc1...@gmail.com> wrote: > > > > Noticeable lack of silence in the group on this one. > > > > I've not got time to test currently. But my experience of geo location > > files - they often had more than 2 dimensional data. In other words you > > might have a boundary of a region as an object with long and lat for > maybe > > 100 data points making up the region. So 200 pieces of data. All held as > a > > list or something similar in a single "cell" as excel would refer to it. > > > > My gut feeling is that's likely to make export to excel difficult without > > data carpentry first? > > > > On Tue, 24 Sep 2024, 21:26 Bert Gunter, <bgunter.4...@gmail.com> wrote: > > > >> You might try posting on r-sig-geo if you don't get a satisfactory > >> response here. I assume there's a lot of expertise there on handling > >> raster-type data. > >> > >> Cheers, > >> Bert > >> > >> On Mon, Sep 23, 2024 at 11:31 PM javad bayat <j.bayat...@gmail.com> > wrote: > >>> > >>> Dear R users; > >>> I have downloaded a grib file format (Met.grib) and I want to export > its > >>> data to excel file. Also I want to do some mathematic on some columns. > >> But > >>> I got error. I would be more than happy if anyone can help me to do > >> this. I > >>> have provided the codes and the Met.grib file in this email. > >>> Sincerely yours > >>> > >>> # Load the necessary libraries > >>>> library(raster) # For reading GRIB files > >>>> library(dplyr) # For data manipulation > >>>> library(lubridate) # For date manipulation > >>>> library(openxlsx) # For writing Excel files > >>> > >>> # Specify the file paths > >>>> grib_file_path <- "C:/Users/Omrab_Lab/Downloads/Met.grib" > >>>> excel_file_path <- "C:/Users/Omrab_Lab/Downloads/Met_updated.xlsx" > >>> > >>> # Open the GRIB file > >>>> raster_data <- stack(grib_file_path) > >>> > >>> # Check the names of the layers to identify which ones to extract > >>>> layer_names <- names(raster_data) > >>>> print(layer_names) # Prints > >>> > >>> > >>>> # Extract layers based on layer names - adjust as necessary > >>>> t2m <- raster_data[[grep("t2m", layer_names)]] > >>>> d2m <- raster_data[[grep("d2m", layer_names)]] > >>>> tcc <- raster_data[[grep("tcc", layer_names)]] > >>>> valid_time <- raster_data[[grep("valid_time", layer_names)]] > >>>> t2m > >>> class : RasterStack > >>> nlayers : 0 > >>> > >>>> # Check if the raster layers are loaded correctly > >>>> if (is.null(t2m) || is.null(d2m) || is.null(tcc) || > >> is.null(valid_time)) > >>> { > >>> + stop("One or more raster layers could not be loaded. Please check > >> the > >>> layer names.") > >>> + } > >>> > >>>> # Convert raster values to vectors > >>>> t2m_values <- values(t2m) > >>> Error in dimnames(x) <- dn : > >>> length of 'dimnames' [2] not equal to array extent > >>>> d2m_values <- values(d2m) > >>> Error in dimnames(x) <- dn : > >>> length of 'dimnames' [2] not equal to array extent > >>>> tcc_values <- values(tcc) > >>> Error in dimnames(x) <- dn : > >>> length of 'dimnames' [2] not equal to array extent > >>>> valid_time_values <- values(valid_time) > >>> Error in dimnames(x) <- dn : > >>> length of 'dimnames' [2] not equal to array extent > >>> > >>> # Check for NA values and dimensions > >>> if (any(is.na(t2m_values)) || any(is.na(d2m_values)) || any(is.na > >> (tcc_values)) > >>> || any(is.na(valid_time_values))) { > >>> warning("One or more layers contain NA values. These will be > removed.") > >>> } > >>> > >>> # Create the data frame, ensuring no NA values are included > >>> df <- data.frame( > >>> t2m = t2m_values, > >>> d2m = d2m_values, > >>> tcc = tcc_values, > >>> valid_time = valid_time_values, > >>> stringsAsFactors = FALSE > >>> ) > >>> > >>> # Remove rows with NA values > >>> df <- na.omit(df) > >>> > >>> # Convert temperatures from Kelvin to Celsius > >>> df$t2m <- df$t2m - 273.15 > >>> df$d2m <- df$d2m - 273.15 > >>> > >>> # Calculate relative humidity > >>> calculate_relative_humidity <- function(t2m, d2m) { > >>> es <- 6.112 * exp((17.67 * t2m) / (t2m + 243.5)) > >>> e <- 6.112 * exp((17.67 * d2m) / (d2m + 243.5)) > >>> rh <- (e / es) * 100 > >>> return(rh) > >>> } > >>> df$RH <- calculate_relative_humidity(df$t2m, df$d2m) > >>> > >>> # Convert valid_time from numeric to POSIXct assuming it's in seconds > >> since > >>> the epoch > >>> df$valid_time <- as.POSIXct(df$valid_time, origin = "1970-01-01") > >>> > >>> # Extract year, month, day, and hour from valid_time > >>> df$Year <- year(df$valid_time) > >>> df$Month <- month(df$valid_time) > >>> df$Day <- day(df$valid_time) > >>> df$Hour <- hour(df$valid_time) > >>> > >>> # Select only the desired columns > >>> df_selected <- df %>% select(Year, Month, Day, Hour, tcc, t2m, RH) > >>> > >>> # Save the updated DataFrame to an Excel file > >>> write.xlsx(df_selected, excel_file_path, row.names = FALSE) > >>> > >>> > >>> > >>> > >>> > >>> > >>> -- > >>> Best Regards > >>> Javad Bayat > >>> M.Sc. Environment Engineering > >>> Alternative Mail: bayat...@yahoo.com > >>> > >>> [[alternative HTML version deleted]] > >>> > >>> ______________________________________________ > >>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > >>> https://stat.ethz.ch/mailman/listinfo/r-help > >>> PLEASE do read the posting guide > >> https://www.R-project.org/posting-guide.html > >>> and provide commented, minimal, self-contained, reproducible code. > >> > >> ______________________________________________ > >> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > >> https://stat.ethz.ch/mailman/listinfo/r-help > >> PLEASE do read the posting guide > >> https://www.R-project.org/posting-guide.html > >> and provide commented, minimal, self-contained, reproducible code. > >> > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide > https://www.R-project.org/posting-guide.html > > and provide commented, minimal, self-contained, reproducible code. > > ********************** > "The contents of this message do not reflect any position of the U.S. > Government or NOAA." > ********************** > Roy Mendelssohn > Supervisory Operations Research Analyst > NOAA/NMFS > Environmental Research Division > Southwest Fisheries Science Center > ***Note new street address*** > 110 McAllister Way > Santa Cruz, CA 95060 > Phone: (831)-420-3666 > Fax: (831) 420-3980 > e-mail: roy.mendelss...@noaa.gov www: https://www.pfeg.noaa.gov/ > > "Old age and treachery will overcome youth and skill." > "From those who have been given much, much will be expected" > "the arc of the moral universe is long, but it bends toward justice" -MLK > Jr. > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > https://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > -- Best Regards Javad Bayat M.Sc. Environment Engineering Alternative Mail: bayat...@yahoo.com [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide https://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.