version 1.32, 2014/09/05 21:59:48
|
version 1.33, 2015/01/23 01:18:13
|
Line 563 int computeBzderivative(float *bz, float |
|
Line 563 int computeBzderivative(float *bz, float |
|
// float *noiseby, float *noisebz) | // float *noiseby, float *noisebz) |
| |
int computeJz(float *bx_err, float *by_err, float *bx, float *by, int *dims, float *jz, float *jz_err, float *jz_err_squared, | int computeJz(float *bx_err, float *by_err, float *bx, float *by, int *dims, float *jz, float *jz_err, float *jz_err_squared, |
int *mask, int *bitmask, float cdelt1, double rsun_ref, double rsun_obs,float *derx, float *dery) |
int *mask, int *bitmask, float cdelt1, double rsun_ref, double rsun_obs,float *derx, float *dery, float *err_term1, float *err_term2) |
| |
| |
{ | { |
Line 584 int computeJz(float *bx_err, float *by_e |
|
Line 584 int computeJz(float *bx_err, float *by_e |
|
{ | { |
if isnan(by[j * nx + i]) continue; | if isnan(by[j * nx + i]) continue; |
derx[j * nx + i] = (by[j * nx + i+1] - by[j * nx + i-1])*0.5; | derx[j * nx + i] = (by[j * nx + i+1] - by[j * nx + i-1])*0.5; |
|
err_term1[j * nx + i] = (by_err[j * nx + i+1])*(by_err[j * nx + i+1]) + (by_err[j * nx + i-1])*(by_err[j * nx + i-1]); |
} | } |
} | } |
| |
Line 593 int computeJz(float *bx_err, float *by_e |
|
Line 594 int computeJz(float *bx_err, float *by_e |
|
{ | { |
if isnan(bx[j * nx + i]) continue; | if isnan(bx[j * nx + i]) continue; |
dery[j * nx + i] = (bx[(j+1) * nx + i] - bx[(j-1) * nx + i])*0.5; | dery[j * nx + i] = (bx[(j+1) * nx + i] - bx[(j-1) * nx + i])*0.5; |
|
err_term2[j * nx + i] = (bx_err[(j+1) * nx + i])*(bx_err[(j+1) * nx + i]) + (bx_err[(j-1) * nx + i])*(bx_err[(j-1) * nx + i]); |
} | } |
} | } |
| |
Line 602 int computeJz(float *bx_err, float *by_e |
|
Line 604 int computeJz(float *bx_err, float *by_e |
|
{ | { |
if isnan(by[j * nx + i]) continue; | if isnan(by[j * nx + i]) continue; |
derx[j * nx + i] = ( (-3*by[j * nx + i]) + (4*by[j * nx + (i+1)]) - (by[j * nx + (i+2)]) )*0.5; | derx[j * nx + i] = ( (-3*by[j * nx + i]) + (4*by[j * nx + (i+1)]) - (by[j * nx + (i+2)]) )*0.5; |
|
err_term1[j * nx + i] = ( (3*by_err[j * nx + i])*(3*by_err[j * nx + i]) + (4*by_err[j * nx + (i+1)])*(4*by_err[j * nx + (i+1)]) + (by_err[j * nx + (i+2)])*(by_err[j * nx + (i+2)]) ); |
} | } |
| |
i=nx-1; | i=nx-1; |
Line 609 int computeJz(float *bx_err, float *by_e |
|
Line 612 int computeJz(float *bx_err, float *by_e |
|
{ | { |
if isnan(by[j * nx + i]) continue; | if isnan(by[j * nx + i]) continue; |
derx[j * nx + i] = ( (3*by[j * nx + i]) + (-4*by[j * nx + (i-1)]) - (-by[j * nx + (i-2)]) )*0.5; | derx[j * nx + i] = ( (3*by[j * nx + i]) + (-4*by[j * nx + (i-1)]) - (-by[j * nx + (i-2)]) )*0.5; |
|
err_term1[j * nx + i] = ( (3*by_err[j * nx + i])*(3*by_err[j * nx + i]) + (4*by_err[j * nx + (i+1)])*(4*by_err[j * nx + (i+1)]) + (by_err[j * nx + (i+2)])*(by_err[j * nx + (i+2)]) ); |
} | } |
| |
j=0; | j=0; |
Line 616 int computeJz(float *bx_err, float *by_e |
|
Line 620 int computeJz(float *bx_err, float *by_e |
|
{ | { |
if isnan(bx[j * nx + i]) continue; | if isnan(bx[j * nx + i]) continue; |
dery[j * nx + i] = ( (-3*bx[j*nx + i]) + (4*bx[(j+1) * nx + i]) - (bx[(j+2) * nx + i]) )*0.5; | dery[j * nx + i] = ( (-3*bx[j*nx + i]) + (4*bx[(j+1) * nx + i]) - (bx[(j+2) * nx + i]) )*0.5; |
|
err_term2[j * nx + i] = ( (3*bx_err[j*nx + i])*(3*bx_err[j*nx + i]) + (4*bx_err[(j+1) * nx + i])*(4*bx_err[(j+1) * nx + i]) + (bx_err[(j+2) * nx + i])*(bx_err[(j+2) * nx + i]) ); |
} | } |
| |
j=ny-1; | j=ny-1; |
Line 623 int computeJz(float *bx_err, float *by_e |
|
Line 628 int computeJz(float *bx_err, float *by_e |
|
{ | { |
if isnan(bx[j * nx + i]) continue; | if isnan(bx[j * nx + i]) continue; |
dery[j * nx + i] = ( (3*bx[j * nx + i]) + (-4*bx[(j-1) * nx + i]) - (-bx[(j-2) * nx + i]) )*0.5; | dery[j * nx + i] = ( (3*bx[j * nx + i]) + (-4*bx[(j-1) * nx + i]) - (-bx[(j-2) * nx + i]) )*0.5; |
|
err_term2[j * nx + i] = ( (3*bx_err[j*nx + i])*(3*bx_err[j*nx + i]) + (4*bx_err[(j+1) * nx + i])*(4*bx_err[(j+1) * nx + i]) + (bx_err[(j+2) * nx + i])*(bx_err[(j+2) * nx + i]) ); |
|
|
} | } |
| |
for (i = 1; i <= nx-2; i++) |
|
|
for (i = 0; i <= nx-1; i++) |
{ | { |
for (j = 1; j <= ny-2; j++) |
for (j = 0; j <= ny-1; j++) |
{ | { |
// calculate jz at all points | // calculate jz at all points |
|
|
jz[j * nx + i] = (derx[j * nx + i]-dery[j * nx + i]); // jz is in units of Gauss/pix | jz[j * nx + i] = (derx[j * nx + i]-dery[j * nx + i]); // jz is in units of Gauss/pix |
jz_err[j * nx + i] = 0.5*sqrt( (bx_err[(j+1) * nx + i]*bx_err[(j+1) * nx + i]) + (bx_err[(j-1) * nx + i]*bx_err[(j-1) * nx + i]) + |
jz_err[j * nx + i] = 0.5*sqrt( err_term1[j * nx + i] + err_term2[j * nx + i] ) ; |
(by_err[j * nx + (i+1)]*by_err[j * nx + (i+1)]) + (by_err[j * nx + (i-1)]*by_err[j * nx + (i-1)]) ) ; |
|
jz_err_squared[j * nx + i]= (jz_err[j * nx + i]*jz_err[j * nx + i]); | jz_err_squared[j * nx + i]= (jz_err[j * nx + i]*jz_err[j * nx + i]); |
count_mask++; | count_mask++; |
|
|
} | } |
} | } |
return 0; | return 0; |