Conversion from Cartesian X,Y,Z to domain-centric cylindrical coordinates
    4 views (last 30 days)
  
       Show older comments
    
I just have a question on the conversion from Cartesian X,Y,Z to domain-centric cylindrical coordinates. I have a computed variable, an energy flux term, say F. 
Currently, F is a function of x,y,z. Here, the x,y,and z are not lat-Lon values but are more like indices. For example, the grid has 480 grids in the X and Y direction with a spacing of 1km each. So I simply define X as 1000 to 480,000 in increments of 1000 (meters). Y and X are the same since the grid is uniform. I use actual Z values which are non-uniform. 
What I’d like to do is to transform this variable, F into r,theta,z coordinates with reference to the domain center. What is the best way to do this in Matlab?  
4 Comments
  Sindar
      
 on 24 Jan 2020
				
      Edited: Sindar
      
 on 24 Jan 2020
  
			An algorithm:
- generate a cylindrical grid (decide whether you want r_max to include all xyz points, or to exclude any unknown points, or somewhere between)
 - transform this grid into Cartesian (x2=r*cos(theta), etc.)
 - interpolate F from your original grid to the new Cartesian grid (interp3)
 - you now have F2 at your new cylindrical grid
 
Accepted Answer
  Sindar
      
 on 24 Jan 2020
        
      Edited: Sindar
      
 on 24 Jan 2020
  
      % example data
X = 1000:1000:480000;
Y = X;
Z = sort(rand(size(X)));
Domain_Center = [mean(X([1 end])) mean(Y([1 end])) mean(Z([1 end]))]
% compute Cylindrical coordinates
[theta,rho,z] = cart2pol(X-Domain_Center(1),Y-Domain_Center(2),Z - Domain_Center(3));
% F = F
5 Comments
  Sindar
      
 on 24 Jan 2020
				The algorithm is on the documentation page https://www.mathworks.com/help/matlab/ref/cart2pol.html#bu5h1tr-1
slices and isosurfaces will treat your r,theta,z coordinates exactly like cartesian ones. For instance, visually, the slices will still be planes but they will be slices along r instead of x, etc.. I'd just try first and see what happens.
More Answers (0)
See Also
Categories
				Find more on Surface and Mesh Plots in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!