рдпрд╣ рд▓реЗрдЦ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рддрд╛рд░рдХреАрдп рд╡рд╕реНрддреБрдУрдВ
2MASS рдХреЗ рдПрдЯрд▓рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд╛рднреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред
2MASS ~ 471 рдорд┐рд▓рд┐рдпрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рджрд┐рдП рдЧрдП рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рдВрдмрдВрдзрд┐рдд рдЬрд╛рдирдХрд╛рд░реА, рдХреБрд▓ 60 рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБред
рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ 50GB рд╕реНрд░реЛрдд gzipped text files рд╣реИред
рдХреНрдпрд╛ "рднрд╛рд░реА рддреЛрдкрдЦрд╛рдиреЗ" рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓рд┐рдП рдмрд┐рдирд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЖрдзрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ?
рдЖрдЗрдП рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред
рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛
рдпрд╣ рдХрд╛рдо 2009 рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдпрд╣ рдЦреБрдж рдЬрд┐рдпреЛ-рдбреАрдмреАрдПрдордПрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП
рдбреЗрдЯрд╛рдПрд╕реНрдЯ рдХреЗ
рдкреНрд░рдпрд╛рд╕реЛрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдерд╛ред
рд▓рдХреНрд╖реНрдп рдбрд┐рдмрдЧ, рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХрд░рдирд╛ рдФрд░ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреНрд╡реЗрд░реА рдкреНрд░реЛрд╕реЗрд╕рд░ рдмрдирд╛рдирд╛ рдерд╛ред
рдПрдХ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ,
рдЯреНрдпреВрд░реЛрд░рд┐рдпрд▓ рдбреА рдмреЛрд▓реА рдХреЛ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛, рдпрд╛ рдмрд▓реНрдХрд┐, рдЗрд╕рдХрд╛ рд╕рдВрдмрдВрдз рд░рд┐рд▓реЗрд╢рдирд▓ рдмреАрдЬрдЧрдгрд┐рдд рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдерд╛ред рдмреЛрд▓реА рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдХрд░реНрд╕рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд╕рд┐рд░реНрдл рд╕рдВрджрд░реНрдн рд╣реИ рдФрд░ рдЗрд╕ рдкреЛрд╕реНрдЯ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдкрд┐рдЫрд▓реА рдЬреАрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдХрд╣рд╛рдиреА рдирд╣реАрдВ рд╣реИ рдЬреЛ "рдмрд╛рд░рд┐рд╢ рдореЗрдВ рдЖрдБрд╕реВ рдХреА рддрд░рд╣ рдкрд┐рдШрд▓ рдЧрдпрд╛", рд▓реЗрдХрд┐рди рд╕реАрдзреЗ DBMS рдХрд░реНрд╕рд░ рдореЗрдВ рдЧрдгрдирд╛ рдХреА рдЕрдзрд┐рдХрддрдо рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреА рддрдХрдиреАрдХ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рд╣реИред
рдмреЗрд╢рдХ, рдЖрдк рдЗрд╕ рддрдХрдиреАрдХ рдХреЛ рдкреАрдПрд▓ / рдПрд╕рдХреНрдпреВрдПрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдФрд░ / рдпрд╛ рд╕рдореБрдЪреНрдЪрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкрд░рд┐рдЪрдп
рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдорд╛рди рд▓реЗрдВ рдХрд┐ рдбреЗрдЯрд╛ рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП 8h 26min рдФрд░ рд╕реНрдерд╛рдирд┐рдХ рдЕрдиреБрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП 1h 17min рд▓рд┐рдпрд╛ред
рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рддреНрдпрд╛рдкрди рдЕрдиреБрд░реЛрдз рд╢рд╛рдорд┐рд▓ рд╣реИред
select count(*) as rows, sum(pts_key::bigint) as sum_pts_key, sum(pxcntr::bigint) as sum_pxcntr, sum(scan_key::bigint) as sum_scan_key, sum(scan::bigint) as sum_scan, sum(ext_key::bigint) as sum_ext_key, sum(coadd_key::bigint) as sum_coadd_key, sum(coadd::bigint) as sum_coadd, sum(mp_flg) as sum_mp_flg, sum(gal_contam) as sum_gal_contam, sum(use_src) as sum_use_src, sum(dup_src) as sum_dup_src, sum(nopt_mchs) as sum_nopt_mchs, sum(phi_opt::bigint) as sum_phi_opt, sum(dist_edge_ew::bigint) as sum_dist_edge_ew, sum(dist_edge_ns::bigint) as sum_dist_edge_ns, sum(err_ang::bigint) as sum_err_ang FROM twomass_psc;
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХреНрд╡реЗрд░реА рдЬреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛
select "PSC" chew { "rows" INTEGER, "sum_pts_key" INTEGER, "sum_pxcntr" INTEGER, "sum_scan_key" INTEGER, "sum_scan" INTEGER, "sum_ext_key" INTEGER, "sum_coadd_key" INTEGER, "sum_coadd" INTEGER, "sum_mp_flg" INTEGER, "sum_gal_contam" INTEGER, "sum_use_src" INTEGER, "sum_dup_src "INTEGER, "sum_nopt_mchs" INTEGER, "sum_phi_opt" INTEGER, "sum_dist_edge_ew" INTEGER, "sum_dist_edge_ns" INTEGER, "sum_err_ang" INTEGER } hook "init" { "rows" := 0; "sum_pts_key" := 0; ... "sum_err_ang" := 0; } hook "row" { "rows" := "rows" + 1; if (not isnull("pts_key/cntr")) then "sum_pts_key" := "sum_pts_key" + "pts_key/cntr"; end if; ... if (not isnull("err_ang")) then "sum_err_ang" := "sum_err_ang" + "err_ang"; end if; } hook "finit" { call __interrupt (); };
рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
INFO: start [04/Jun/2009:09:37:45:822] ----------------------------------------------------------------- rows sum_pts_key sum_pxcntr sum_scan_key sum_scan sum_ext_key sum_coadd_key sum_coadd sum_mp_flg sum_gal_contam sum_use_src sum_dup_src sum_nopt_mchs sum_phi_opt sum_dist_edge_ew sum_dist_edge_ns sum_err_ang ----------------------------------------------------------------- 470992970 306810325437475788 306815556538478936 16902776758555 32666066948 2048692118201 388758631396659 64617139213 16048 729878 464456155 79798372 369187043 64916239773 69388217174 2670725813652 29279563815 ----------------------------------------------------------------- INFO: stop [04/Jun/2009:12:35:59:571]
рдпрд╣рд╛рдВ,
рдЪреЙрд╡ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореВрд▓ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо (рд╕рдВрдкреВрд░реНрдг рддрд╛рд▓рд┐рдХрд╛) рдХреЛ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреБрдЫ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдмрди рдЬрд╛рддреЗ рд╣реИрдВред
рд╣реБрдХ рдСрдкрд░реЗрдЯрд░ (SQL рд╕рдореБрдЪреНрдЪрдп рдХреЗ рд╕рдорд╛рди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдШрдЯрдирд╛рдУрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдХ рд╕реНрдЯреНрд░реАрдо рд╢реБрд░реВ / рд░реЛрдХреЗрдВ рдФрд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдЬрдм
__interrupt рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ
, рд╕реНрдерд╛рдиреАрдп рдЪрд░
рдХреЗ рд╡рд░реНрддрдорд╛рди рдорд╛рди рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдЖрддреЗ рд╣реИрдВред
рдкрд░рд┐рдгрд╛рдо рд╕рддреНрдпрд╛рдкрди рд╡рд╛рд▓реЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред
рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рдордп - 3 рдШрдВрдЯреЗ, рдирд┐рд░рдВрддрд░ рджреЗрдЦрдиреЗ рдХреЗ рджреМрд░рд╛рди рдкреНрд░рддрд┐ рдХреЙрд▓рдо рд▓рдЧрднрдЧ 10 рдорд┐рдирдЯред рдпрд╣ рдЧрддрд┐ (Intel Core2 P4-2.4 GHz, 2Gb, рдбрд┐рд╕реНрдХ ST3400620AS рдкрд░) рдЖрдЧреЗ рдХреЗ рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИред рджреВрд╕рд░реА рдУрд░, рдЕрдЧрд░ рд╣рдордиреЗ рд╕реНрд░реЛрдд рдкрд╛рда рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдирдкреИрдХ рдХрд┐рдпрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ GAWK рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛, рддреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП 50 рдПрдордмреА / рдПрд╕ = 1000 рд╕реЗрдХрдВрдб рдкрд░ рд╣рдореЗрдВ 50 рдЬреАрдмреА рд▓рдЧреЗрдЧрд╛ рдФрд░ рдЙрд╕реА рд░рд╛рд╢рд┐ рдХреЛ рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, 35 рдорд┐рдирдЯ рд╕рд┐рд░реНрдл рд╕реНрдЯреНрд░реАрдо рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред Wc рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдЕрдирдкреИрдХ рдХрд░рдирд╛ рдФрд░ рдЪрд▓рд╛рдирд╛ рдПрдХ рдШрдВрдЯреЗ рдФрд░ рдЖрдзреЗ рдШрдВрдЯреЗ рдХрд╛ рдерд╛ред
рдЬреЛ рд▓реЛрдЧ рдЕрдкрдиреА рдЖрдБрдЦреЛрдВ рд╕реЗ рд╕рдм рдХреБрдЫ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдЖрдХрд╛рд╢ рдХрд╛ рдПрдХ рдкреНрд▓реЗрдЯ рджреЛрд╖ рд╣реИ:
рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдиреЗ рд╢рд╛рд╣реА рдмреЗрдбрд╝реЗ рдХреА рдпреБрджреНрдз рд░реЗрдЦрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдирд╕реЗ рдЧрд▓рддреА рдХреАред
рдбрд╛рдЯрд╛ рдорд╛рдЗрдирд┐рдВрдЧ
рд╕рд░рд▓ рдЖрдБрдХрдбрд╝реЗред рдЕрдзрд┐рдХрддрдо, рдиреНрдпреВрдирддрдо, рдФрд╕рдд - рдЪрд▓реЛ "рдЬреЗрдПрдо" рдХреЙрд▓рдо (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЬреЗ-рдмреИрдВрдб рдкрд░рд┐рдорд╛рдг) рдХреЗ рд╕рд╛рде рдЦреЗрд▓рддреЗ рд╣реИрдВред
select "PSC" chew { "nrows" INTEGER, "nulls_j_m" INTEGER, "num_j_m" INTEGER, "sum_j_m" RATIONAL, "avg_j_m" RATIONAL, "max_j_m" RATIONAL, "min_j_m" RATIONAL } hook "init" { "nrows" := 0; "nulls_j_m" := 0; "num_j_m" := 0; "sum_j_m" := 0; "avg_j_m" := 0; "max_j_m" := -1e66; "min_j_m" := 1e66; } hook "row" { nrows := nrows + 1; if (isnull("j_m")) then "nulls_j_m" := "nulls_j_m" + 1; else "num_j_m" := "num_j_m" + 1; "sum_j_m" := "sum_j_m" + "j_m"; if ("max_j_m"<"j_m") then "max_j_m" := "j_m"; end if; if ("min_j_m">"j_m") then "min_j_m" := "j_m"; end if; end if; } hook "finit" { "avg_j_m" := "sum_j_m" / "num_j_m"; call __interrupt (); };
рдкрд░рд┐рдгрд╛рдо:
INFO: start [04/Jun/2009:15:00:54:821] -------------------------------------------------------------------- nrows nulls_j_m num_j_m sum_j_m avg_j_m max_j_m min_j_m -------------------------------------------------------------------- 470992970 19 470992951 7.15875e+009 15.1993 25.86 -2.989 -------------------------------------------------------------------- INFO: stop [04/Jun/2009:15:18:47:743]
рдлреИрд▓рд╛рд╡:
select "PSC" chew { "nrows" INTEGER, "nulls_j_m" INTEGER, "num_j_m" INTEGER, "disp_j_m" RATIONAL } hook "init" { "nrows" := 0; "nulls_j_m" := 0; "num_j_m" := 0; "disp_j_m" := 0; var tmp rational; var tavg rational; tavg := 15.1993; -- previously calculated } hook "row" { nrows := nrows + 1; if (isnull("j_m")) then "nulls_j_m" := "nulls_j_m" + 1; else "num_j_m" := "num_j_m" + 1; tmp := "j_m" - tavg; tmp := tmp * tmp; "disp_j_m" := "disp_j_m" + tmp; end if; } hook "finit" { "disp_j_m" := "disp_j_m" / "num_j_m"; call __interrupt (); };
рдкрд░рд┐рдгрд╛рдо :
INFO: start [04/Jun/2009:15:48:27:274] -------------------------------------------------------------------- nrows nulls_j_m num_j_m disp_j_m -------------------------------------------------------------------- 470992970 19 470992951 1.98223 -------------------------------------------------------------------- INFO: stop [04/Jun/2009:16:05:01:946
рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо: select "PSC" chew { "j_m_cell" rational, "num" INTEGER } hook "init" { var tmp integer; var tmp2 integer; var tmax rational; tmax := 26.; -- previously calculated var tmin rational; tmin := -5.; -- previously calculated var ncells integer; ncells := 500; var tcell rational; tcell := (tmax - tmin)/ncells; var htptr integer; htptr := hti_alloc (0); call hti_set (htptr, 0, 0); } hook "row" { if (not isnull("j_m")) then tmp := ("j_m" - tmin)/tcell; tmp2 := hti_get (htptr, tmp); tmp2 := tmp2 + 1; call hti_set (htptr, tmp, tmp2); end if; } hook "finit" { tmp := 0; while tmp < ncells; begin; "j_m_cell" := tmin + tcell * tmp + tcell * 0.5; "num" := hti_get (htptr, tmp); tmp := tmp + 1; call __interrupt (); end; end while; call hti_free (htptr); };
рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕рдВрдЪрдп рдПрдХ рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд░рд┐рдгрд╛рдо рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдПрдХ рдкреНрд░рд┐рдВрдЯрдЖрдЙрдЯ рд╣реЛрдЧрд╛, рдЬреЛ
gnuplot рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд╕реНрд╡реАрд░ рдореЗрдВ, рд╕реНрддрдВрднреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд┐рдВрдЯрдЖрдЙрдЯ рднреА рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ "рдХрд┐рдореА" (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗрдПрд╕-рдмреИрдВрдб рдкрд░рд┐рдорд╛рдг) рдФрд░ "рдПрдЪрдПрдо" (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдЪ-рдмреИрдВрдб рдкрд░рд┐рдорд╛рдг)ред
3 рдбреАрд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рдкрд░ "рдХрд┐рдореА" рдФрд░ "рдПрдЪрдПрдо" рдмрд╣реБрдд рд╕рдорд╛рди рджрд┐рдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рдЭрд╛ рд╡рд┐рддрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
select "PSC" chew { "cell" rational, "num" INTEGER } hook "init" { var tmp integer; var tmp2 integer; var tmp4 integer; var tmax rational; tmax := 25; var tmin rational; tmin := -5.; var ncells integer; ncells := 512; var tcell rational; tcell := (tmax - tmin)/ncells; var "hnd" integer; hnd:= img_create ( ncells, ncells, tmin, tmin, tmax, tmax, 1); var cl integer; cl := img_alloc_color (hnd, 255,0,0); } hook "row" { if ((not isnull("h_m")) and (not isnull("k_m"))) then tmp := img_get_point (hnd, "h_m", "k_m"); tmp := tmp + 1; call img_draw_point (hnd, "h_m", "k_m", tmp); end if; } hook "finit" { tmp := 0; while tmp < ncells; begin; tmp2 := 0; while tmp2 < ncells; begin; tmp4 := img_get_point (hnd, tmin + tcell * tmp, tmin + tcell * tmp2); call print ((tmin + tmp * tcell)+' '+ (tmin + tmp2* tcell)+' '+tmp4+'\n'); if tmp4 > 0 then tmp4 := cl; else tmp4 := 0; end if; call img_draw_point (hnd, tmin + tcell * tmp, tmin + tcell * tmp2, cl); tmp2 := tmp2 + 1; end; end while; tmp := tmp + 1; end; end while; call img_saveas (hnd, 'stat4.gif'); call img_destroy (hnd); };
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рджреЛ-рдЖрдпрд╛рдореА рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ
рдЬреАрдбреА рдкреНрд▓рдЧ-рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдПрдХ рдЫрд╡рд┐ рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд▓реЙрдЧрд░рд┐рджрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрдЦ рд░рд╣реЗ рдереЗ, рдЬреЛ рдХрд┐
pm3d рдореЛрдб рдореЗрдВ
gnuplot рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ
рдереЗ ред
"J_m" рдХреЗ рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди рддрд╕реНрд╡реАрд░ - "k_m" рдмрдирд╛рдо "h_m" - "k_m":
рдЗрди рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдкреНрд░рддрд┐ рдХреЙрд▓рдо ~ 35 рдорд┐рдирдЯ - 12 рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд╛рдирд┐рдХ рдбреЛрдореЗрди рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рддрд░рдг рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рд╕реЗрдХрдВрдб рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдмреЗрд╢рдХ:
рд╕реНрдерд╛рдирд┐рдХ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рд╕рд╛рде рдирдореВрдирд╛ ред
select "PSC" where sp_overlap ("Point", [rational:xmin], [rational:ymin], [rational:xmax], [rational:ymax]) chew { "m_cell" rational, "num" INTEGER } тАж -- below is the same text
Sp_overlap рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдореВрд▓ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╕реНрдЯреНрд░реАрдо рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╕реНрдерд╛рдирд┐рдХ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рдмрджрд▓ рдЧрдИред
рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдирд┐рдЪрд▓реЗ рдмрд╛рдПрдВ рдХреЛрдиреЛрдВ рдореЗрдВ рдирдореВрдиреЛрдВ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрддреНрддрд░рджрд╛рдпреА рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
рдпрд╣ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдЬрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИред
select "PSC" where тАЬj_snrтАЭ < 10.
рдФрд░ рдпрд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдо рд╣реИред
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░
рд╣рдореЗрдВ рдХрд░реНрд╕рд░ рдореЗрдВ рдЧрдгрдирд╛ рдХрд╛ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреНрдпрд╛ рджреЗрддрд╛ рд╣реИ?
- рдЧрддрд┐ , рдЬрдЧрд╣ рдореЗрдВ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛, рд╣рдо рдХреНрд░рдорд╛рдВрдХрди рд╕реЗ рдореБрдХреНрдд рд╣реИрдВ, рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВ, рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, deserializing ...
- рд╕рдВрдЧреНрд░рд╣реАрдд рд╕рдВрд╕рд╛рдзрди , рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдзрд╛ рдЕрд░рдм рд▓рд╛рдЗрдиреЗрдВ, рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рднреЗрдЬреА рдЬрд╛ рд░рд╣реА рд╣реИрдВ, рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЕрдкрдиреЗ рдереНрд░реВрдкреБрдЯ рдХреЗ рдЙрдЪрд┐рдд рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓реЗрдВрдЧреА
рдФрд░ рдЗрд╕ рддрдХрдиреАрдХ рд╕реЗ рд╣рдореЗрдВ рдХреНрдпрд╛ рдЦрддрд░рд╛ рд╣реИ?
- рд╣рдореЗрдВ рд╕реНрд╡рдпрдВ рд╕рдм рдХреБрдЫ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╕реНрд░реЛрдд рд╣реИред
- рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЬрд┐рд╕рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЧрдгрдирд╛рдПрдВ рд╕рд╛рдЭрд╛ рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИрдВред
- рд╕рднреА рдЧрдгрдирд╛ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред
рдпрд╣ рд╕рдм рд╕рдЪ рд╣реИ, рд▓реЗрдХрд┐рди рд▓реЗрдЦрдХ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдпрджреНрдпрдкрд┐ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХреЗ рдЕрдиреБрд╕рдВрдзрд╛рди рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдкрд░рд┐рдХрд▓реНрдкрдирд╛рдУрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЬрд╛рдВрдЪрдиреЗ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред