Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
S H E L B Y J O N E S H A N N A A S E F A W
Modeling Marine Magnetic Anomalies
1
Outline
① Magnetic Acquisition
② Goal of our Project
③ Derivation ④ Our MATLAB Process
⑤ Real Applications
¡ Pacific Antarctic Ridge ¡ Mid-Atlantic Ridge
⑥ Limitations
2
Magnetic Acquisition
� MORB (Mid-Ocean Ridge Basalts) contain magnetic grains
� As basalt cools, the
magnetizations within the magnetic grains align themselves with the magnetic field ¡ Latitudinal dependence
Magnetic Acquisition 3
Magnetic Acquisition
Magnetic Acquisition 4
Goal of Our Project
Goal 5
Modeled Magnetic Profile
Observed Seafloor Magnetic Profile
Goal of Our Project
Goal 6
� C = constant � µ0 = magnetic permeability � k = wavenumbers
¡ k = (-nx/2 : nx/2 - 1) / L ¡ L = spreading rate * total time
� z = depth = 3000m � θ = skewness � p(k) = Fourier of
geomagnetic timescale
Goal of Our Project
Goal 6
� C = constant � µ0 = magnetic permeability � k = wavenumbers
¡ k = (-nx/2 : nx/2 - 1) / L ¡ L = spreading rate * total time
� z = depth = 3000m � θ = skewness � p(k) = Fourier of
geomagnetic timescale
� Ideal towed magnetometer measures:
� Most magnetometers measure scalar field
� On Earth, Be ≅ 50,000nT while ΔB ≅ 300nT
Step 1: Calculate the Scalar of the Anomaly |A|
Derivation 7
Step 2: Account for Seafloor Spreading
� Define scalar potential (U) and magnetization (M)
� Define:
Derivation 8
Step 2: Account for Seafloor Spreading
� Potential satisfies Laplace’s equation above source
layer and Poisson’s equation within source layer
Derivation 9
� 2nd terms can be eliminated because source does not vary in the y-direction thus derivative = 0
Step 2: Account for Seafloor Spreading
Derivation 10
Step 2: Account for Seafloor Spreading
� Boundary Conditions:
� Basic Double Fourier Transform:
� Applied to this problem:
¡ In the x direction:
¡ In the z direction (use identity):
Derivation 11
Step 2: Account for Seafloor Spreading
� Fourier Transform Result
� Solve for U(k)
� Inverse Fourier using Cauchy Residue Theorem
Derivation 12
� To solve integral, calculate the poles of the integrand
¡ Factor:
¡ Solve over closed loops:
Step 2: Account for Seafloor Spreading
Derivation 13
Step 2: Account for Seafloor Spreading
� Combine integrands and drop ksubscripts:
� To simplify: assume the spreading ridge is located at Earth’s magnetic pole, the dipolar field lines will be parallel to the z-axis, thus no x-component
Derivation 14
Step 3: Calculate the magnetic anomaly
� Recall:
� Substitute with evaluated U:
� Recall:
� Since only the z-component of Earth’s magnetic field is non-zero due to our assumptions, the anomaly simplifies to:
*
Derivation 15
Step 3: Calculate the magnetic anomaly
� Take into account upward continuation
*
Derivation 16
Main function
% % specify data files % pacificAntarcticRise = 'pacificAntarctic.xydm'; midAtlanticRidge = 'midAtlanticRidge.xydm’
spreadCSkewErMAR = spreadCSkewEr(midAtlanticRidge, polarity, time, 1318); spreadCSkewErPA = spreadCSkewEr(pacificAntarcticRise, polarity, time, 5418);
Our MATLAB Process 21
spreadCSkewEr()
� Parameters – datafile, polarity, time, ridgeAxis ¡ Datafile – file the contains the observed magnetic anomalies ¡ Polarity – matrix with geomagnetic timescale field polarities ¡ Time – matrix with geomagnetic timescale ¡ ridgeAxis – location of the ridge axis
� Output ¡ Figure 1: Observed Magnetic Anomalies across the ridge ¡ Figure 2: Fourier transform of magnetic timescale & observed ¡ Figure 3: Overlay of observed and modeled ¡ Figure 4: Overlay of observed and modeled ¡ Returns a solution [spreadingRate, Constant, skewness, rootError)
Our MATLAB Process 22
function spreadCSkewEr = spreadCSkewEr(anomalyFile, polarity, time, axisPoint) location = inputname(1); % % load the observed anomaly data % anomalyFile = importdata(anomalyFile); distance = anomalyFile(:,3); magobs = anomalyFile(:,4); % % plot distance from ridge and magnetic anomaly % figure(1) subplot(2,1,1); plot(distance, magobs); xlabel('Distance (km)') ylabel('Magnetic Anomaly (n tesla)') title(['Observed Magnetic Anomalies across the ', location]); % % plot near ridge magnetic anomalies % [totalTimescaleDatapoints,mdat]=size(time./2); vectorTime=2048; halfVectorTime=vectorTime/2; subsetTime = time((totalTimescaleDatapoints/2-halfVectorTime+1): (totalTimescaleDatapoints/2+halfVectorTime),1)'; subsetPolarity = polarity((totalTimescaleDatapoints/2-halfVectorTime+1): (totalTimescaleDatapoints/2+halfVectorTime),1)'; [sizex, sizey] = size(distance); subsetDistance = distance((axisPoint-halfVectorTime+1):(axisPoint+ halfVectorTime),1)'; subsetAnomalies = magobs((axisPoint-halfVectorTime+1):(axisPoint+ halfVectorTime),1)'; subplot(2,1,2); plot(subsetDistance, subsetAnomalies); xlabel('Distance (km)') ylabel('Magnetic Anomaly (n tesla)') title(['Observed Magnetic Anomalies across the ', location]);
Figure 1: Observed Magnetic Anomalies across the ridge
Our MATLAB Process 23
Figure 2: Fourier Transform magnetic timescale and observed anomalies
% % %Fourier Transform of the Observed Magnetic Anomalies across the Pacific-Antarctic Rise % % dataAnomaly = fftshift(fft(subsetAnomalies)); figure(2) subplot(2,1,1); plot(k,real(dataAnomaly)); xlabel('k'); title(['Anomalies Observed across the ', location]); axis([-60, 60,-2 * 10^5, 1*10^5 ]) % % Fourier Transform of the magnetic timescale p(k) % % fourierTimescale = fftshift(fft(subsetPolarity)); % % % Model based on the geomagnetic timescale % % constant= 3 *10^-11; spreadingRate = 40000; theta = -130; skewness = theta * pi/180 ; k2 = k./(spreadingRate*dt); modelAnomaly = abs(k2).*(fourierTimescale).* exp(abs(k2).* DEPTH * -2 * pi).* exp(sign(k2).* 1i * skewness) * constant* MAGPERM * 2 * pi; subplot (2, 1, 2); plot(k, modelAnomaly); xlabel('k'); title('Anomalies modeled from the Magnetic Timescale');
Our MATLAB Process 24
Figure 3: overlay of model and observed (k)
figure(3) plot(k, dataAnomaly,k, modelAnomaly); legend([location, ' observed anomaly'], 'Timescale generated anomaly'); xlabel('k');
Our MATLAB Process 25
Figure 4: overlay of model and observed
% % overlay of inverse fourier dataAnomaly and modelAnomaly % % model= ifft(fftshift(modelAnomaly)); figure(4) plot(subsetDistance./dt*2, subsetAnomalies, subsetTime, model) legend([location, ' observed anomaly'], 'Timescale generated anomaly');
Our MATLAB Process 26
% %calculate the Root Mean Square Error % rootError = calcRMSE(subsetAnomalies, model);
Our MATLAB Process 27
Root Mean Square Error % % takes two matrices and calculates the RMSE % function deviation = calcRMSE (model, observed) [y, dataPointsModel] = size(model); [z, dataPointsObserved] = size (observed); sum = 0; if dataPointsModel >= dataPointsObserved totalPoints = dataPointsObserved; else totalPoints = dataPointsModel; end for i = 1:totalPoints sum = sum + (abs(model(1,i)^2 - observed(1,i))^2); end deviation = sqrt(sum/totalPoints);
How well the model suits the observed data
We tried to minimize RMSE
Our MATLAB Process 28
Return a solution
spreadCSkewEr = [spreadingRate, CONSTANT, theta, rootError];
spreadCSkewErMAR = spreadCSkewEr(midAtlanticRidge, polarity, time, 1318); spreadCSkewErPA = spreadCSkewEr(pacificAntarcticRise, polarity, time, 5418);
Our MATLAB Process 29
Calculating our c, skewness, and rmse % %calculates the ideal skewness theta, constant combinations based on the %observed Anomaly % function skewConst = skewnessConstant (fourierTimescale, observedAnom, inC, rangeC, skew, spreading, rangeSpread ) c = 0; constant = 0; theta = 0; skewness=0; currentRMSE = 0; j = 1; currentLeast = Inf; dt = 20; nx = 2048; magPerm = 4 * pi * 10 * exp(-7); nx2 = nx/2; depth = 3000.; for spreadingRate = (spreading-rangeSpreading):spreading:(spreading+rangeSpreading) L = spreadingRate * dt; k = ((-nx2): (nx2 - 1))/(spreadingRate *dt); for c = (inC-rangeC):10000:(inC+rangeC) for theta = (skew-10):skew:(skew:+10) skewness = theta* pi / 180.; modelAnom = abs(k).*(fourierTimescale').* exp(abs(k).* depth * -2 * pi).* exp(sign(k).* 1i * skewness) * constant * magPerm * 2 * pi; rmse = calcRMSE(modelAnom, observedAnom); if rmse < currentRMSE skewConst = [spreadingRate, c, theta, currentRMSE]; currentRMSE = rmse; end end end end
Our MATLAB Process 30
Main function
% % specify data files % pacificAntarcticRise = 'pacificAntarctic.xydm'; midAtlanticRidge = 'midAtlanticRidge.xydm’
spreadCSkewErMAR = spreadCSkewEr(midAtlanticRidge, polarity, time, 1318); spreadCSkewErPA = spreadCSkewEr(pacificAntarcticRise, polarity, time, 5418);
Our MATLAB Process 31
Mid-Atlantic Ridge
C = 4 *10^-11; Spreading rate = 22000 m/myr Θ (skewness) = -50 RMSE = 193
Real Application 32
Pacific-Antarctic Ridge
C = 1.2 * 10^-10 Spreading rate = 46,000 m/myr Θ (skewness) = 3º RMSE =259
Real Application 33
Limitations
� We assume: ¡ Constant spreading rate ¡ Symmetry across the ridge ¡ Stationary ridge
Limitations 34