Extract data by shapefile

84 views (last 30 days)
Tanmoyee Bhattacharya
Tanmoyee Bhattacharya on 29 Apr 2016
Commented: Saumya Singh on 20 Jul 2021
How to extract data from nc file by using shape file in matlab. I am sending a sample .nc file of resolution 1*1 degree and shapefile of India.

Answers (3)

KSSV
KSSV on 4 May 2016
Edited: KSSV on 4 May 2016
clc; clear all ;
file = 'cpc_rfe_v2.0_sa_dly.bin.20020101.nc' ;
lon = ncread(file,'lon') ;
lat = ncread(file,'lat') ;
RF = ncread(file,'RF') ;
%
path = [pwd filesep 'India State wise with telangana' filesep 'india27-11.shp'] ;
S = shaperead(path) ;
n = length(S) ;
pcolor(lon,lat,RF') ; shading interp ;
hold on
for i = 1%:n
x = S(i).X ; y = S(i).Y ;
rfi = interp2(lon,lat,RF',x,y) ;
end
Your next question is: 'I want data along the polygon, not along the boundary'. It is a project work and you expect everything online?
  1 Comment
Muhammad Usman Saleem
Muhammad Usman Saleem on 25 Feb 2017
@KSSV dear, will you tell me how can i get data along the complete polygon ?

Sign in to comment.


Jitesh Dadich
Jitesh Dadich on 9 Apr 2019
this really helped me....
Dear @KSSV, what if the time is also given in the nc file i.e. nc data are in 3D...then how will we extract the data from .nc file according to given shapefile....
  3 Comments
ANKUR KUMAR
ANKUR KUMAR on 9 May 2019
@Jitesh Refer to my answer.

Sign in to comment.


ANKUR KUMAR
ANKUR KUMAR on 9 May 2019
Edited: ANKUR KUMAR on 9 May 2019
You can use maskregion function, which mask out the data as per your shapefile.
Example you can refer to for your convenience
W=shaperead('us_states.shp');
[data_cropped]=maskregion(lon,lat,data,W);
contourf(lon,lat,nanmean(data_cropped,3)','linecolor','none')
fig1.jpg
For cropping the data, you can use cropregion.
  4 Comments

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by