Info
This question is locked. 編集または回答するには再度開いてください。
How to read shape file in matlab?
    12 ビュー (過去 30 日間)
  
       古いコメントを表示
    
I am using following matlab code to read shape file. I am attaching the shape file also as zip file.
% pickup the shape files
    d = uigetdir(pwd, 'Select a folder');
    shapefiles = dir(fullfile(d, '*.shp'));
    for n = 1:length(shapefiles)
    \   shapefile = shapefiles(n);
        disp(shapefile.name);
        S = shaperead(shapefile.name);
    \   polygon = polyshape([S.X], [S.Y]);
        % Create a logical mask
        logical_mask = inpolygon(lon, lat, polygon.Vertices(:, 1), polygon.Vertices(:, 2));
    end
This is giving the following errors;
>> test\r\nAchi Khurd.shp
Error using openShapeFiles>checkSHP (line 82)
Unable to open file 'Achi Khurd.shp'. Check the path and filename or file permissions.
Error in openShapeFiles (line 19)
[basename, ext] = checkSHP(basename,shapeExtensionProvided);
Error in shaperead (line 212)
    = openShapeFiles(filename,'shaperead');
Error
  in test (line 9)
  S = shaperead(shapefile.name);
>> 
Please suggest me how to fix it? I would be highly obliged for kind help.
Dave
8 件のコメント
回答 (1 件)
  Voss
      
      
 2024 年 3 月 26 日
        
      編集済み: Voss
      
      
 2024 年 3 月 26 日
  
      You are attempting to read a file in the current directory:
S = shaperead(shapefile.name);
That is, you are not taking into account the location of that file.
You should specify an absolute or relative path to the file, e.g.:
file_name = fullfile(shapefile.folder,shapefile.name);
S = shaperead(file_name);
d = uigetdir(pwd, 'Select a folder');
assert(~isnumeric(d),'No folder selected')
shapefiles = dir(fullfile(d, '*.shp'));
for n = 1:length(shapefiles)
    shapefile = shapefiles(n);
    file_name = fullfile(shapefile.folder,shapefile.name);
    disp(file_name);
    S = shaperead(file_name);
    polygon = polyshape([S.X], [S.Y]);
    % Create a logical mask
    logical_mask = inpolygon(lon, lat, polygon.Vertices(:, 1), polygon.Vertices(:, 2));
    % ...
end
0 件のコメント
This question is locked.
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




