9
\ begingroup美元

我使用一个重力数据的地形校正算法。我用伊,1973年。然而,我不能得到我需要的结果。

所以,这就是问题所在。我有这个功能在这里输入图像描述

  1. 在x, y, z的坐标是棱镜角。
  2. 2是方程数值方法,S (xi) = 1美元x < 0, 1 x > 0 $和$ 0 $ x = 0美元。同样适用于y,但美元$ F (x, y, z) = 0美元当z = 0美元
  3. 方程3给出了z组件美元的引力

看起来很简单的实现,但我找不到consitent结果。

然后,我知道我必须乘以G美元地球的引力常数和密度。

我有下面的坐标

  • 美元(x1, x2) =(-500500)美元
  • 美元(y1, y2) =(500、1500)美元
  • 美元(z1 (z2) =(500、1500)美元

地球密度\公斤/ m ^ 3 1000美元。我应该得到的结果\ miliGals $ 2.360美元。但是我没有。

我把代码在python中,任何一个答案?

def nagy1973 (x, y, z):从数学导入日志,√6,#计算每股的总重力atraction rightrectangular棱镜#输入x =元组与x1和x2坐标# y = tuple y1和y2坐标与z1和z2坐标# # z =元组输出GravCorrect =一个地形校正,对矩形普里姆斯河。def Fz (a, b, c): #这是引力的数值方法#吸引力的Z分量输入y = x # b = # # b Z = F = #输出GravCorrect地形校正= abs (a) b = abs (b) c = abs (c r =√(a * * 2 + b * * 2 + c * * 2) r0 =√6 (a * * 2 + b * * 2) GravCorrect = *日志((b + r0) / (b + r)) + b *日志((a + r0) / (a + r)) + c *: (a * b / (c * r))返回GravCorrect GravCorrAcum = 0 #这给总Z分量的棱镜k范围(1、3):j的范围(1,len (y) + 1):我的范围(1,len (x) + 1):如果x(张)< 0:sgnX = 1 elif x(张)= = 0:sgnX = 0: sgnX = 1如果y [j - 1] < 0: sgnY = 1 elif y (j - 1) = = 0: sgnY = 0: sgnY = 1 sgnIJK = (1) * * (i + j + k) RealSign = sgnIJK * sgnX * sgnY #打印(sgnIJK、sgnX sgnY, RealSign) GravCorr = Fz (x(张),y (j - 1)、Z (k - 1)) FinalFz = RealSign * GravCorr GravCorrAcum + = FinalFz e-11 * 6.67408 * 1000 * 100000 #乘以重力常数#密度1000 kg / m3, 100000转换常数miligals miligals # #输出打印FinalFz, GravCorrAcum GravCorrAcum返回

调用函数:

x = y (-500、500) = (500、1500) z = (500、1500) FZ1 = nagy1973 (x, y, z)打印FZ1
\ endgroup美元
4
  • \ begingroup美元 尽管它与地球科学,这问题是关于编码。江南体育网页版它可能是更适合另一个网站。 \ endgroup美元
    - - - - - -弗雷德
    2016年1月28日,在0:13
  • \ begingroup美元 你国家地球的密度为1克/立方厘米。这是水的密度。地球的密度是5.515克/立方厘米(planetfacts.org/density-and-mass-of-earth) \ endgroup美元
    - - - - - -弗雷德
    2016年1月28日,在0:14
  • \ begingroup美元 是的,这是正确的关于地球的密度,但对于这个示例使用1克/立方厘米。我相信这只是例证。它不是真正的编码。编码的部分并不难。这是一些详细的理论我失踪。 \ endgroup美元
    - - - - - -jaime鹰嘴豆
    2016年1月28日,在2:14
  • 6
    \ begingroup美元 我谦卑地同意弗雷德。这正是这种问题我想使用这个网站来得到帮助。地球物理的大部分是实现理论通过编写代码,这就是可能出现很多混乱。祝你好运啦! \ endgroup美元
    - - - - - -安东尼奥
    2016年3月1日在56

2答案2

3
\ begingroup美元

而不是伊棱镜的公式,我建议你使用公式引用以下文章:

Das Gupta b·巴纳吉……(1977):
“一个长方体的引力”
地球物理学,42卷,n。5,页1053 - 1055
doi:10.1190/1.1440766

我写道,在Fortran, TC程序根据公式。如果你看报纸您更好地理解为什么Banerjee-das古普塔提出的算法更容易计划,但在任何情况下,我想指出一些特性描述页。1055:

1)“…我们的表达式只包含一个棕褐色逆促进计算机在各方面工作”一词。

2)”的论点逆术语的表达比罪的观点简单逆在伊的公式”一词…

3)“…在伊的公式x1和x2的迹象,例如,是相反的(即。轴交叉),棱镜分为两个,积分是单独评估从0 x1, x2和0,最后他们被添加。在这个过程中,需要一些逻辑控制编程公式。但是从我们的表达式(3),它很容易,r.h.s.项分离成两个不是必需的,同样的,当轴交叉或x - y轴都是交叉。这是因为x和y的迹象会自动的凸轮在我们的子例程”。

公式编程是引用页1055 n 3°),但在任何情况下我可以提供你的代码(在Fortran)我写30年前给palmieri.gravimetry@libero.it写信

亲切的问候和良好祝愿,弗朗西斯科

\ endgroup美元
2
  • 1
    \ begingroup美元 这种“答案”实际上并没有回答这个问题,问。然而,它可能会给有价值的信息的人对这个话题感兴趣。两个建议:请简要描述,为什么Banerjee和达斯古普塔(1977)实际上为这个目的提供一个“更好”的公式。请提供链接到代码或一些信息如何获取代码。 \ endgroup美元
    - - - - - -daniel.heydebreck
    2017年6月27日在十三24
  • \ begingroup美元 谢谢,我将检查出来。我会看报纸,问你一个问题如果有必要, \ endgroup美元
    - - - - - -jaime鹰嘴豆
    2017年6月30日19:14
2
\ begingroup美元

我最近处理同样的问题,在Matlab解决它,

如果它帮助,下面是链接文件交换

https://au.mathworks.com/matlabcentral/fileexchange/57349-nagyprism-x1-x2-y1-y2-h-rho-

这是代码:

%的函数使用伊%棱镜进行地形改正公式。%计算地形校正一块地形与坐标(x1, y1) % (x2, y1) (x1, y2) (x2, y2)在x, y平面和%高度h。% ......................................% ............⒈% ........... / ......... / ! ? .............% .......... / _ ________ /。! ? .............% .......... ! ! ....... ! . . !h ............% .......... ! ! ....... !…! ? .............% .......... ! ! ....... !…! ? .............% .......... ! ! ....... !…! ? .............% .......... ! ! (x1, y2) ! . . ! ....... (x2, y2) %..........!./.......!./............... %(x1,y1)...!/________!/(x2,y1)......... % % with density rho; % the terrain correction T is given by % T = nagyprism(x1,x2,y1,y2,h,rho) % % The function can handle vectors of coordinates so that correction % for mutiple pieces of terrain can also be calculated function [terrc] = nagyprism(x1,x2,y1,y2,h,rho) twopiG = 0.0419; % for g in mgal, h in m and rho in Mg/m3 G=twopiG/(2*pi); fac11=sqrt(x1.^2+y1.^2); fac11h=sqrt(x1.^2+y1.^2+h.^2); fac12=sqrt(x1.^2+y2.^2); fac12h=sqrt(x1.^2+y2.^2+h.^2); fac21=sqrt(x2.^2+y1.^2); fac21h=sqrt(x2.^2+y1.^2+h.^2); fac22=sqrt(x2.^2+y2.^2); fac22h=sqrt(x2.^2+y2.^2+h.^2); fac2h=sqrt(y2.^2+h.^2); fac1h=sqrt(y1.^2+h.^2); y2h=y2.^2+h.^2; y1h=y1.^2+h.^2; terrc=x2.*(log( (y2+fac22)./(y2+fac22h))-... log( (y1+fac21)./(y1+fac21h))) -... x1.*( log( (y2+fac12)./(y2+fac12h))-log( (y1+fac11)./(y1+fac11h))) +... y2.*(log( (x2+fac22)./(x2+fac22h))-log( (x1+fac12)./(x1+fac12h))) -... y1.*(log( (x2+fac21)./(x2+fac21h))-log( (x1+fac11)./(x1+fac11h))) +... h.*(asin( (y2h +y2.*fac22h)./( (y2+fac22h).*fac2h))-... asin( (y2h +y2.*fac12h)./( (y2+fac12h).*fac2h))-... asin( (y1h +y1.*fac21h)./( (y1+fac21h).*fac1h))+... asin( (y1h +y1.*fac11h)./( (y1+fac11h).*fac1h))); terrc=sum(G.*rho.*terrc); end

执照如下:

版权(c) 2016年,杰克。保留所有权利。再分配和使用源代码和二进制形式,有或没有修改,允许提供满足下列条件:*分发源代码必须保持上述版权声明,这个列表的条件以及其后的免责声明。*以二进制形式重新发布必须保留未经修改的上述版权通知,这个列表的条件以及其后的免责声明文档和/或分发本软件提供的其他材料由版权所有者和贡献者提供“是”和任何明示或默示保证,包括但不限于适销性的隐含保证和健身为特定目的是否认的。没有版权所有者或贡献者概对任何直接、间接、附带、特别,模范,或间接的损害赔偿(包括但不限于替代产品或服务的采购;损失的使用、数据或利润;或业务中断)然而造成任何理论的责任,无论是在合同,严格责任,或侵权行为(包括疏忽或其他)引起的以任何方式使用这个软件,即使建议的这种损害的可能性。
\ endgroup美元
5
  • 1
    \ begingroup美元 欢迎来到地球科学!江南体育网页版虽然这可能在理论上回答这个问题,这将是可取的包括重要的部分答案,并提供链接供参考。 \ endgroup美元
    - - - - - -
    2016年5月26日,在12:15吗
  • \ begingroup美元 如果你能把代码在这里会非常有帮助。 \ endgroup美元
    - - - - - -hichris123
    2016年5月26日22:55
  • \ begingroup美元 自从Mathworks执照明确允许重新分配,我的自由编辑代码到答案。 \ endgroup美元
    - - - - - -
    2017年1月12日,在33
  • \ begingroup美元 这是完美的,谢谢你。 \ endgroup美元
    - - - - - -jaime鹰嘴豆
    2017年2月6日15:49
  • \ begingroup美元 其实我是想测试一个巨大的光栅,和一些罕见的事情发生了。试试这些数据:x1 = 0.1 x2 = 47.536日元= 99173.917 y2 = 99295.0 h = 1111.769ρ= 2.67。它给了我一些不可能的负数。任何想法? \ endgroup美元
    - - - - - -jaime鹰嘴豆
    2017年2月9日21:17

你的答案

通过点击“发布你的答案”,你同意我们服务条款并承认您已阅读并理解我们的隐私政策的行为准则

不是你要找的答案?浏览其他问题标记问你自己的问题