用OxyPlot在WPF中演示正演磁异常的变化规律

本文介绍如何使用MatLab计算正演磁异常数据,然后在WPF应用中通过C#处理数据文件,并利用OxyPlot组件动态展示磁异常随埋深和磁化倾角的变化。用户可通过调整Slider控制角度和深度,观察曲线动态变化。
摘要由CSDN通过智能技术生成

为了在展示实验成果时动态演示理论球体磁异常随其埋深、磁化倾角的变化规律,我用WPF写了一个小程序来作演示。
程序截图

MatLab计算磁异常数据

首先是计算理论球体磁异常数据,在Matlab中可以很方便地计算。
为了在展示时能够同时改变磁化倾角(is)、埋深(Deep),计算数据时套了两层循环,外层是is从0到90°,内层是Deep从10到100m,里面计算一条剖面上的Za和Hax磁异常数据。实现代码如下:

function Za=sphere_deeps()
    % 测点分布范围
    dx=5; % X方向测点间距
    nx=81; % X方向测点数
    xmin=-200; % X方向起点
    x=xmin:dx:(xmin+(nx-1)*dx); % X方向范围

    u=4*pi*10^(-7);  %磁导率
    i=pi/2;  %有效磁化倾角is
    a=0; %剖面磁方位角
    T=50000;%地磁场T=50000nT

    % 球体参数
    R1=10; % 球体半径 m
    %D1=30; % 球体埋深 m
    v1=4*pi*R1^3;
    k=0.2; %磁化率
    M1=k*T/u;  %磁化强度 A/m
    m1=M1*v1;   %磁矩

    % 球体 理论磁异常主剖面
    %(x-0),(y-0)
    y=0;
    Za=zeros(46,nx);
    Hax=zeros(46,nx);

    fp=fopen('za_all.out','w');
    for ii=0:90
        i=ii*pi/180;
        for j=0:45
            D1=10+j*2;
            Za0=(u*m1*((2*D1.^2-x.^2-y.^2)*sin(i)-3*D1*x.*cos(i)*cos(a)-3*D1*y.*cos(i)*sin(a)))./(4*pi*(x.^2+y.^2+D1.^2).^(5/2));
            for k=1:nx
                fprintf(fp,'%g ',Za0(k));
            end
            fprintf(fp,'\n');
        end
    end
    fclose(fp);

    fp=fopen('hax_all.out','w');
    for ii=0:90
        i=ii*pi/180;
        for j=0:
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值