Exporting matlab matrices to ESRI ArcMap

9 次查看(过去 30 天)
I have a large (4499x1459) 2D matrix containing surface ocean current data, and want to create an ArcMap shapefile from the matrix NaN values (i.e. a land mask). I have a code which creates polygon vertices (lat, lon) for each NaN value cell, but this is taking too long to do for such a large matrix. Is there a way I can simply read the matlab matrix into ArcMap as a raster image, so I can then convert it to a vector format there?
I have had no luck with this in searches so far.
Thanks in advance.

采纳的回答

Walter Roberson
Walter Roberson 2011-6-20
A thought: bwboundaries(isnan(YourMatrix)) would construct pixel lists; the pixel lists would be the vector coordinates. Not optimized to remove pixels that are in straight lines between pixels, but perhaps that is not needed at this time.
I do not know the performance of bwboundaries(), but it might be worth trying.
  1 个评论
Sally
Sally 2011-6-21
Hi Walter,
thanks for your answer, this gives me a boundary for my land mask very quickly. However, the results are not in a format I know how to use. Do you know how to then create a boundary file from the resulting image?
Thank you, Sally

请先登录,再进行评论。

更多回答(1 个)

Rob Comer
Rob Comer 2011-6-21
ArcGIS can read GeoTIFF format. If you have R2011a, perhaps you could write your ocean current grid to a GeoTIFF file using the Mapping Toolbox geotiffwrite function, then import it into ArcGIS. See:
  2 个评论
Sally
Sally 2011-6-21
Oh that looks amazing, unfortunately I don't have that version. I am using 2010b.
Thanks anyway Rob.
Matthew Cooper
Matthew Cooper 2015-10-13
Also, it is not clear from the documentation how geotiffwrite handles NaN values - can you clarify? In my experience, when I use geotiffwrite to write Matlab matrices with NaN values into a .tif file, the NaN values are converted to NoData values such as -1.38E-38, however when I load the .tif's into ArcMap the NoData value is not recognized. Arc has tools for setting NoData, but they are in the Spatial Analyst toolbox that I do not have authorized.
Any idea how to solve that problem?

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by