ဝီကီးပီးဒီးယား
rkiwiki
https://rki.wikipedia.org/wiki/%E1%80%A1%E1%80%93%E1%80%AD%E1%80%80%E1%80%85%E1%80%AC%E1%80%99%E1%80%BB%E1%80%80%E1%80%BA%E1%80%94%E1%80%BE%E1%80%AC
MediaWiki 1.47.0-wmf.23
first-letter
မီဒီယာ
အထူး
ဆွီးနွီးချက်
အသုံးပြုလူ
အသုံးပြုလူ ဆွီးနွီးချက်
ဝီကီးပီးဒီးယား
ဝီကီးပီးဒီးယား ဆွီးနွီးချက်
ဖိုင်
ဖိုင် ဆွီးနွီးချက်
မီဒီယာဝီကီ
မီဒီယာဝီကီ ဆွီးနွီးချက်
တမ်းပလိတ်
တမ်းပလိတ် ဆွီးနွီးချက်
အကူအညီ
အကူအညီ ဆွီးနွီးချက်
ကဏ္ဍ
ကဏ္ဍ ဆွီးနွီးချက်
TimedText
TimedText talk
Module
Module talk
Event
Event talk
Module:Params
828
1239
21897
21887
2026-10-11T04:36:45Z
Grufo
1121
Update from [[d:Special:GoToLinkedPage/mediawikiwiki/Q122696746|master]] using [[mw:Synchronizer| #Synchronizer]]
21897
Scribunto
text/plain
require[[strict]]
--- ---
--- PRIVATE ENVIRONMENT ---
--- ________________________________ ---
--- ---
--[[ Abstract utilities ]]--
----------------------------
-- Helper function for `string.gsub()` (for managing zero-padded numbers)
local function zero_padded (str)
return ('%03d%s'):format(#str, str)
end
-- Helper function for `table.sort()` (for natural sorting)
local function natural_sort (var1, var2)
return var1:gsub('%d+', zero_padded) < var2:gsub('%d+', zero_padded)
end
-- Return a copy or a reference to a table
local function copy_or_ref_table (src, refonly)
if refonly then return src end
local newtab = {}
for key, val in pairs(src) do newtab[key] = val end
return newtab
end
-- Copy at most N items (of all kinds) from `src` to `dest` and return `dest`
local function copy_table_maxn (dest, src, len)
local idx = 1
for key, val in pairs(src) do
dest[key], idx = val, idx + 1
if idx > len then break end
end
return dest
end
-- Remove some numeric elements from a table, shifting everything to the left
local function remove_numeric_keys (tbl, idx, len)
local cache, tmp = {}, idx + len - 1
for key, val in pairs(tbl) do
if type(key) == 'number' and key >= idx then
if key > tmp then cache[key - len] = val end
tbl[key] = nil
end
end
for key, val in pairs(cache) do tbl[key] = val end
end
-- Make a reduced copy of a table (shifting in both directions if necessary)
local function copy_table_reduced (tbl, idx, len)
local ret, tmp = {}, idx + len - 1
if idx > 0 then
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key < idx then
ret[key] = val
elseif key > tmp then ret[key - len] = val end
end
elseif tmp > 0 then
local nshift = 1 - idx
for key, val in pairs(tbl) do
if type(key) ~= 'number' then ret[key] = val
elseif key > tmp then ret[key - tmp] = val
elseif key < idx then ret[key + nshift] = val end
end
else
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key > tmp then
ret[key] = val
elseif key < idx then ret[key + len] = val end
end
end
return ret
end
-- Make an expanded copy of a table (shifting in both directions if necessary)
local function copy_table_expanded (tbl, idx, len)
local ret, tmp = {}, idx + len - 1
if idx > 0 then
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key < idx then
ret[key] = val
else ret[key + len] = val end
end
elseif tmp > 0 then
local nshift = idx - 1
for key, val in pairs(tbl) do
if type(key) ~= 'number' then ret[key] = val
elseif key > 0 then ret[key + tmp] = val
elseif key < 1 then ret[key + nshift] = val end
end
else
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key > tmp then
ret[key] = val
else ret[key - len] = val end
end
end
return ret
end
-- Given a table, create two new tables containing the sorted list of keys
local function get_sorted_key_list (tbl, sort_fn)
local nums, words, nn, nw = {}, {}, 1, 1
for key, val in pairs(tbl) do
if type(key) == 'number' then nums[nn], nn = key, nn + 1
else words[nw], nw = key, nw + 1 end
end
table.sort(nums)
table.sort(words, sort_fn)
return nums, words, nn - 1, nw - 1
end
-- Parse a parameter name string and return it as a string or a number
local function get_param_name (par_str)
local ret = par_str:match'^%s*(.-)%s*$'
if ret ~= '0' and ret:find'^%-?[1-9]%d*$' == nil then return ret end
return tonumber(ret)
end
-- Move a key from a table to another, but only if under a different name and
-- always parsing numeric strings as numbers
local function steal_if_renamed (val, src, skey, dest, dkey)
local realkey = get_param_name(dkey)
if skey ~= realkey then dest[realkey], src[skey] = val, nil end
end
--[[ Public strings ]]--
------------------------
-- Special match keywords (functions and modifiers MUST avoid these names)
local mkeywords = {
['or'] = 0,
pattern = 1,
plain = 2,
strict = 3
}
-- Sort functions (functions and modifiers MUST avoid these names)
local sortfunctions = {
alphabetically = false,
naturally = natural_sort
}
-- Callback styles for the `mapping_*` and `renaming_*` class of modifiers
-- (functions and modifiers MUST avoid these names)
--[[
Meanings of the columns:
col[1] = Loop type (0-3)
col[2] = Number of module arguments that the style requires (1-3)
col[3] = Minimum number of sequential parameters passed to the callback
col[4] = Name of the callback parameter where to place each parameter name
col[5] = Name of the callback parameter where to place each parameter value
col[6] = Argument in the modifier's invocation that will override `col[4]`
col[7] = Argument in the modifier's invocation that will override `col[5]`
A value of `-1` indicates that no meaningful value is stored (i.e. `nil`)
]]--
local mapping_styles = {
names_and_values = { 3, 2, 2, 1, 2, -1, -1 },
values_and_names = { 3, 2, 2, 2, 1, -1, -1 },
values_only = { 1, 2, 1, -1, 1, -1, -1 },
names_only = { 2, 2, 1, 1, -1, -1, -1 },
names_and_values_as = { 3, 4, 0, -1, -1, 2, 3 },
names_only_as = { 2, 3, 0, -1, -1, 2, -1 },
values_only_as = { 1, 3, 0, -1, -1, -1, 2 },
blindly = { 0, 2, 0, -1, -1, -1, -1 }
}
-- Memory slots (functions and modifiers MUST avoid these names)
local memoryslots = {
h = 'header',
f = 'footer',
i = 'itersep',
l = 'lastsep',
n = 'ifngiven',
p = 'pairsep',
s = 'oxfordsep'
}
-- Possible trimming modes for the `parsing` modifier
local trim_parse_opts = {
trim_none = { false, false },
trim_positional = { false, true },
trim_named = { true, false },
trim_all = { true, true }
}
-- Possible string modes for the iteration separator in the `parsing` and
-- `reinterpreting` modifiers
local isep_parse_opts = {
splitter_pattern = false,
splitter_string = true
}
-- Possible string modes for the key-value separator in the `parsing` and
-- `reinterpreting` modifiers
local psep_parse_opts = {
setter_pattern = false,
setter_string = true
}
-- Possible position references for the `splicing` modifier
local position_references = {
add_nothing = 0,
add_smallest_number = 1,
add_last_of_sequence = 2,
add_largest_number = 3
}
-- Possible modes for the `reassigning` modifier
local a_modes = {
transfer = 0,
clone = 1,
rename = 2,
copy = 3,
sacrifice = 4,
provide = 5,
spare = 7
}
-- Functions and modifiers MUST avoid these names too: `here`, `in_substack`,
-- `let`, `expose`, `use`, `with_flushed_glue`, `without_flushed_glue`
-- `without_sorting`
--[[ Private constants ]]--
---------------------------
-- Hard-coded name of the module (to avoid going through `frame:getTitle()`)
local modulename = 'Module:Params'
-- The functions listed here declare that they don't need the
-- `frame:getParent().args` metatable to be copied into a regular table; if
-- they are modifiers they also guarantee that they will make their own
-- (modified) copy available
local refparams = {
call_for_each_group = true,
combining = true,
combining_by_calling = true,
combining_values = true,
concat_and_call = true,
concat_and_invoke = true,
concat_and_magic = true,
count = true,
grouping_by_calling = true,
mixing_names_and_values = true,
keeping_at_most = true,
renaming_by_mixing = true,
renaming_to_sequence = true,
renaming_to_uppercase = true,
renaming_to_lowercase = true,
shifting = true,
splicing = true,
value_of = true,
with_name_matching = true
}
-- Maximum number of numeric parameters that can be filled, if missing (we
-- chose an arbitrary number for this constant; you can discuss about its
-- optimal value at Module talk:Params)
local maxfill = 1024
-- The private table of functions
local library = {}
-- Functions and modifiers that can only be invoked in first position
local static_iface = {}
--[[ Private functions ]]--
---------------------------
-- Create a new context
local function context_new (child_frame, first_fn_name)
local main_frame, tpipe = child_frame:getParent(), { first_fn_name }
for key, val in pairs(child_frame.args) do
if type(key) == 'number' and key > 0 then tpipe[key + 1] = val
else tpipe[key] = val end
end
return {
frame = main_frame,
pipe = tpipe,
oparams = main_frame.args,
firstposonly = static_iface,
iterfunc = pairs,
fnpos = 1,
sorttype = 0,
n_parents = 0,
n_children = 0,
n_available = maxfill
}
end
-- Move to the next action within the user-given list
local function context_iterate (ctx, next_fn_pos)
local nextfn
if ctx.pipe[next_fn_pos] ~= nil then
nextfn = ctx.pipe[next_fn_pos]:match'^%s*(.*%S)'
end
if nextfn == nil then error(modulename ..
': You must specify a function to call', 0) end
if library[nextfn] == nil then
if ctx.firstposonly[nextfn] == nil then error(modulename ..
': The function ‘' .. nextfn .. '’ does not exist', 0)
else error(modulename .. ': The ‘' .. nextfn ..
'’ directive can only appear in first position', 0)
end
end
ctx.fnpos = next_fn_pos
return library[nextfn]
end
-- Main loop
local function main_loop (ctx, start_with)
local fn = start_with
repeat fn = fn(ctx) until not fn
if ctx.n_parents > 0 then error(modulename ..
': One or more ‘merging_substack’ directives are missing', 0) end
if ctx.n_children > 0 then error(modulename ..
', For some of the snapshots either the ‘flushing’ directive is missing or a group has not been properly closed with ‘merging_substack’', 0) end
end
-- Load a `setting`-like directive string into the `dest` table
local function set_strings_from_opts (dest, opts, offs)
local cmd
if opts[offs] == nil then return offs - 1 end
cmd = opts[offs]:gsub('%s+', ''):gsub('/+', '/'):match'^/*(.*[^/])'
if cmd == nil then return offs end
local vname, chr
local amap, sep, argc = {}, string.byte('/'), offs + 1
for idx = 1, #cmd do
chr = cmd:byte(idx)
if chr == sep then
for key, val in ipairs(amap) do
dest[val], amap[key] = opts[argc], nil
end
argc = argc + 1
else
vname = memoryslots[string.char(chr)]
if vname == nil then error(modulename ..
', ‘setting’: Unknown slot ‘' .. string.char(chr) .. '’', 0) end
table.insert(amap, vname)
end
end
for key, val in ipairs(amap) do dest[val] = opts[argc] end
return argc
end
-- Add a new stack of parameters to `ctx.children`
local function new_substack (ctx)
local currsnap, newparams = ctx.n_children + 1, {}
if ctx.children == nil then ctx.children = { newparams }
else ctx.children[currsnap] = newparams end
ctx.n_children = currsnap
return newparams
end
-- Parse a raw argument containing a `sortfunctions` directive, or
-- `'without_sorting'`, or `nil`
local function load_sort_opt (raw_arg)
if raw_arg == nil then return nil, 1, false end
local trarg = raw_arg:match'^%s*(.-)%s*$'
if trarg == 'without_sorting' then return nil, 2, false, trarg end
local tmp = sortfunctions[trarg]
if tmp == nil then return nil, 1, false, trarg end
return tmp or nil, 2, true, trarg
end
-- Parse optional user arguments of type `...|[let/use]|[...]|[let/use]|[...]|
-- [number of additional parameters]|[parameter 1]|[parameter 2]|[...]`
local function load_child_opts (src, start_from, append_after, params)
local tnamed, tmp1, tmp2
local pin, tbl, mem = start_from, {}, {}
while src[pin] ~= nil and src[pin + 1] ~= nil do
tmp1 = src[pin]:match'^%s*(.*%S)'
if tmp1 == 'let' and src[pin + 2] ~= nil then
tmp1 = get_param_name(src[pin + 1])
mem[tmp1], tbl[tmp1], pin = nil, src[pin + 2], pin + 3
--[[
elseif tmp1 == 'expose' then
tmp1 = get_param_name(src[pin + 1])
tmp2 = params[tmp1]
mem[tmp1], tbl[tmp1], pin = tmp2, tmp2, pin + 2
]]--
elseif tmp1 == 'use' and src[pin + 2] ~= nil then
tmp1 = get_param_name(src[pin + 2])
tmp2 = params[tmp1]
mem[tmp1], tbl[get_param_name(src[pin + 1])], pin =
tmp2, tmp2, pin + 3
else break end
end
local tnew = copy_or_ref_table(params, next(mem) == nil)
for key in pairs(mem) do tnew[key] = nil end
if pin ~= start_from then tnamed, tbl = tbl, {} end
tmp1 = tonumber(src[pin])
if tmp1 ~= nil and math.floor(tmp1) == tmp1 then
if tmp1 < 0 then tmp1 = -1 end
tmp2 = append_after - pin
for idx = pin + 1, pin + tmp1 do tbl[idx + tmp2] = src[idx] end
pin = pin + tmp1 + 1
end
if tnamed ~= nil then
for key, val in pairs(tnamed) do tbl[key] = val end
end
return tbl, pin, tnew, mem
end
-- Load the optional arguments of some of the `mapping_*` and `renaming_*`
-- class of modifiers
local function load_callback_opts (src, start_from, default_style, params)
local style, shf
local tmp = src[start_from + 1]
if tmp ~= nil then style = mapping_styles[tmp:match'^%s*(.-)%s*$'] end
if style == nil then style, shf = default_style, start_from - 1
else shf = start_from end
local n_exist, karg, varg = style[3], style[4], style[5]
tmp = style[6]
if tmp > -1 then
karg = src[tmp + shf]:match'^%s*(.-)%s*$'
if karg == '0' or karg:find'^%-?[1-9]%d*$' ~= nil then
karg = tonumber(karg)
n_exist = math.max(n_exist, karg)
end
end
tmp = style[7]
if tmp > -1 then
varg = src[tmp + shf]:match'^%s*(.-)%s*$'
if varg == '0' or varg:find'^%-?[1-9]%d*$' ~= nil then
varg = tonumber(varg)
n_exist = math.max(n_exist, varg)
end
end
tmp = style[1]
local dest, argc, tnew, mem = load_child_opts(src, style[2] + shf,
n_exist, params)
if (tmp == 3 or tmp == 2) and dest[karg] ~= nil then
tmp = tmp - 2 end
if (tmp == 3 or tmp == 1) and dest[varg] ~= nil then
tmp = tmp - 1 end
return dest, argc, tmp, karg, varg, tnew, mem
end
-- Parse the arguments of some of the `mapping_*` and `renaming_*` class of
-- modifiers
local function load_replace_args (opts, offs, whoami)
if opts[offs + 1] == nil then error(modulename ..
', ‘' .. whoami .. '’: No pattern string was given', 0) end
if opts[offs + 2] == nil then error(modulename ..
', ‘' .. whoami .. '’: No replacement string was given', 0) end
local ptn, repl, nmax, argc =
opts[offs + 1], opts[offs + 2], tonumber(opts[offs + 3]), 3
if nmax ~= nil or (opts[offs + 3] or ''):match'^%s*$' ~= nil then
argc = 4
end
local flg = opts[offs + argc]
if flg ~= nil then flg = mkeywords[flg:match'^%s*(.-)%s*$'] end
if flg == 0 then flg = nil elseif flg ~= nil then argc = argc + 1 end
return ptn, repl, nmax, flg, offs + argc, (nmax ~= nil and nmax < 1) or
(flg == 3 and ptn == repl)
end
-- Parse the arguments of the `with_*_matching` class of modifiers
local function load_pattern_args (opts, offs, whoami)
local keyw
local ptns, arg, state, nptns, idx = {}, opts[offs + 1], 0, 0, offs + 2
while arg ~= nil do
if state == 0 then
nptns, state = nptns + 1, -1
ptns[nptns] = { arg, false, false }
else
keyw = arg:match'^%s*(.*%S)'
if keyw == nil or mkeywords[keyw] == nil or (
state > 0 and mkeywords[keyw] > 0
) then break
else
state = mkeywords[keyw]
if state > 1 then ptns[nptns][2] = true end
if state == 3 then ptns[nptns][3] = true end
end
end
arg, idx = opts[idx], idx + 1
end
if state == 0 then error(modulename ..
', ‘' .. whoami .. '’: No pattern was given', 0) end
return ptns, nptns, idx - 1
end
-- Load the optional arguments of the `parsing`, `reinterpreting` and
-- `evaluating` modifiers
local function load_parse_opts (opts, offs, isp, psp)
local tmp
local optslots, noptslots, argc, trimn, trimu, iplain, pplain =
{ true, true, true }, 3, offs, true, false, true, true
repeat
noptslots, tmp = noptslots - 1, opts[argc]
if tmp == nil then break end
tmp = tmp:match'^%s*(.-)%s*$'
if optslots[1] ~= nil and trim_parse_opts[tmp] ~= nil then
tmp = trim_parse_opts[tmp]
trimn, trimu, optslots[1] = tmp[1], tmp[2], nil
elseif optslots[2] ~= nil and isep_parse_opts[tmp] ~= nil then
argc = argc + 1
iplain, isp, optslots[2] = isep_parse_opts[tmp],
opts[argc], nil
elseif optslots[3] ~= nil and psep_parse_opts[tmp] ~= nil then
argc = argc + 1
pplain, psp, optslots[3] = psep_parse_opts[tmp],
opts[argc], nil
else break end
argc = argc + 1
until noptslots < 1
return isp, iplain, psp, pplain, trimn, trimu, argc
end
-- Map parameters' values using a custom callback and a referenced table
local value_maps = {
[0] = function (tbl, margs, karg, varg, fn)
for key in pairs(tbl) do tbl[key] = fn() end
end,
[1] = function (tbl, margs, karg, varg, fn)
for key, val in pairs(tbl) do
margs[varg] = val
tbl[key] = fn()
end
end,
[2] = function (tbl, margs, karg, varg, fn)
for key in pairs(tbl) do
margs[karg] = key
tbl[key] = fn()
end
end,
[3] = function (tbl, margs, karg, varg, fn)
for key, val in pairs(tbl) do
margs[karg], margs[varg] = key, val
tbl[key] = fn()
end
end
}
-- Private table for `map_names()`
local name_thieves = {
[0] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
steal_if_renamed(val, tbl, key, cache, fn())
end
end,
[1] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
rargs[varg] = val
steal_if_renamed(val, tbl, key, cache, fn())
end
end,
[2] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
rargs[karg] = key
steal_if_renamed(val, tbl, key, cache, fn())
end
end,
[3] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
rargs[karg], rargs[varg] = key, val
steal_if_renamed(val, tbl, key, cache, fn())
end
end
}
-- Map parameters' names using a custom callback and a referenced table
local function map_names (tbl, rargs, karg, varg, looptype, fn)
local cache = {}
name_thieves[looptype](cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(cache) do tbl[key] = val end
end
-- Return a new table that contains `src` regrouped according to the numeric
-- suffixes in its keys
local function make_groups (src)
-- NOTE: `src` might be the original metatable!
local prefix, gid
local groups = {}
for key, val in pairs(src) do
-- `key` must only be a string or a number...
if type(key) == 'string' then
prefix, gid = key:match'^%s*(.-)%s*(%-?%d*)%s*$'
gid = tonumber(gid) or ''
else prefix, gid = '', key end
if groups[gid] == nil then groups[gid] = {} end
if prefix == '0' or prefix:find'^%-?[1-9]%d*$' ~= nil then
prefix = tonumber(prefix)
if prefix < 1 then prefix = prefix - 1 end
end
groups[gid][prefix] = val
end
return groups
end
-- Split into parts a string containing the `$#` and `$@` placeholders and
-- return the information as a skeleton table, a canvas table and a length
local function parse_placeholder_string (target)
local skel, canvas, idx, s_pos, e_pos =
{}, {}, 1, 1, string.find(target, '%$[@#]', 1, false)
while e_pos ~= nil do
canvas[idx], skel[idx + 1] =
target:sub(s_pos, e_pos - 1),
target:sub(e_pos, e_pos + 1) == '$@'
idx, s_pos = idx + 2, e_pos + 2
e_pos = string.find(target, '%$[@#]', s_pos, false)
end
if (s_pos > target:len()) then idx = idx - 1
else canvas[idx] = target:sub(s_pos) end
return skel, canvas, idx
end
-- Populate a table by parsing a parameter string (heavy lifting for `parsing`,
-- `reinterpreting` and `evaluating`)
local function parse_parameter_string (tbl, str, isp, ipl, psp, ppl, trn, tru)
local key, val, spos1, spos2, pos1, pos2
local pos3, idx, lenplone = 0, 1, #str + 1
if isp == nil or isp == '' then
if psp == nil or psp == '' then
if tru then tbl[idx] = str:match'^%s*(.-)%s*$'
else tbl[idx] = str end
return
end
spos1, spos2 = str:find(psp, 1, ppl)
if spos1 == nil then
key = idx
if tru then val = str:match'^%s*(.-)%s*$'
else val = str end
else
key = get_param_name(str:sub(1, spos1 - 1))
val = str:sub(spos2 + 1)
if trn then val = val:match'^%s*(.-)%s*$' end
end
tbl[key] = val
return
end
if psp == nil or psp == '' then
repeat
pos1 = pos3 + 1
pos2, pos3 = str:find(isp, pos1, ipl)
val = str:sub(pos1, (pos2 or lenplone) - 1)
if tru then val = val:match'^%s*(.-)%s*$' end
tbl[idx], idx = val, idx + 1
until pos2 == nil
return
end
repeat
pos1 = pos3 + 1
pos2, pos3 = str:find(isp, pos1, ipl)
val = str:sub(pos1, (pos2 or lenplone) - 1)
spos1, spos2 = val:find(psp, 1, ppl)
if spos1 == nil then
key = idx
if tru then val = val:match'^%s*(.-)%s*$' end
idx = idx + 1
else
key = get_param_name(val:sub(1, spos1 - 1))
val = val:sub(spos2 + 1)
if trn then val = val:match'^%s*(.-)%s*$' end
end
tbl[key] = val
until pos2 == nil
return
end
-- Heavy lifting for `snapshotting` and `remembering`
local function make_child (ctx, src, whoami)
local len = tonumber(ctx.pipe[ctx.fnpos + 1])
if len == nil or len == 0 then
local stack = new_substack(ctx)
for key, val in pairs(src) do stack[key] = val end
return len == nil and 1 or 2
end
if len < 0 or math.floor(len) ~= len then error(modulename .. ', ‘' ..
whoami .. '’: The number of parameters to copy must be an integer greater than zero', 0) end
copy_table_maxn(new_substack(ctx), src, len)
return 2
end
-- Heavy lifting for `setting_by_flushing`, `combining` and `combining_values`
local function set_strings_from_substack (ctx, dest, whoami)
if ctx.n_children < 1 then error(modulename ..
', ‘' .. whoami .. '’: There are no substacks to flush', 0) end
local currsnap = ctx.n_children
local stack = ctx.children[currsnap]
for key, val in pairs(memoryslots) do
if stack[key] ~= nil then dest[val] = stack[key] end
end
ctx.children[currsnap], ctx.n_children = nil, currsnap - 1
end
-- Heavy lifting for `combining` and `combining_values`
local function combine_parameters (ctx, keyval_fn, whoami)
-- NOTE: `ctx.params` might be the original metatable! This function
-- MUST create a copy of it before returning
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘' .. whoami .. '’: No parameter name was provided', 0) end
local argc
local tbl, vars = ctx.params, {}
local sortfn, ivar0, do_sort, tmp = load_sort_opt(opts[offs + 2])
if ivar0 == 2 then
tmp = opts[offs + 3] and opts[offs + 3]:match'^%s*(.-)%s*$'
end
ivar0 = ivar0 + offs
if tmp == 'with_flushed_glue' then
ivar0 = ivar0 + 1
argc = set_strings_from_opts(vars, opts, ivar0 + 1)
set_strings_from_substack(ctx, vars, whoami)
else
if tmp == 'without_flushed_glue' then ivar0 = ivar0 + 1 end
argc = set_strings_from_opts(vars, opts, ivar0 + 1)
end
if argc < ivar0 then error(modulename ..
', ‘' .. whoami .. '’: No setting directive was given', 0) end
if next(tbl) == nil then
if vars.ifngiven ~= nil then ctx.params =
{ [get_param_name(opts[offs + 1])] = vars.ifngiven }
elseif tbl == ctx.oparams then ctx.params = {} end
return argc
end
local cache, len
if do_sort then
local words
cache, words, len, tmp = get_sorted_key_list(tbl, sortfn)
for idx = 1, tmp do cache[len + idx] = words[idx] end
len = len + tmp
else
cache, len = {}, 1
for key in pairs(tbl) do cache[len], len = key, len + 1 end
len = len - 1
end
local pmap, nss, kvs, pps =
{}, 0, vars.pairsep or '', vars.itersep or ''
for idx = 1, len do
tmp, pmap[nss + 1] = cache[idx], pps
pmap[nss + 2] = keyval_fn(tmp, tbl[tmp], kvs)
nss = nss + 2
end
tmp = vars.oxfordsep or vars.lastsep
if tmp ~= nil and nss > 4 then pmap[nss - 1] = tmp
elseif nss > 2 and vars.lastsep ~= nil then
pmap[nss - 1] = vars.lastsep
end
pmap[1] = vars.header or ''
if vars.footer ~= nil then pmap[nss + 1] = vars.footer end
ctx.params = { [get_param_name(opts[offs + 1])] = table.concat(pmap) }
return argc
end
-- Concatenate the numeric keys from the table of parameters to the numeric
-- keys from the table of options; non-numeric keys from the table of options
-- will prevail over colliding non-numeric keys from the table of parameters
local function concat_params (ctx, offs)
local tbl, retval, cache, nmax = ctx.params, {}, {}, 0
for key, val in pairs(ctx.pipe) do
if type(key) == 'number' then
if key < 1 then cache[key] = val
elseif key > offs then cache[key - offs] = val end
if key > nmax then nmax = key end
else cache[key] = val end
end
nmax = nmax - offs
if ctx.subset == 1 then
-- We need only the sequence
for key, val in ipairs(tbl) do retval[key + nmax] = val end
else
if ctx.subset == -1 then
for key in ipairs(tbl) do tbl[key] = nil end
end
for key, val in pairs(tbl) do
if type(key) == 'number' and key > 0 then
retval[key + nmax] = val
else retval[key] = val end
end
end
for key, val in pairs(cache) do retval[key] = val end
return retval
end
-- Flush the parameters by calling a custom function for each value (after this
-- function has been invoked `ctx.params` will be no longer usable)
local function flush_params (ctx, fn)
local tmp
local tbl = ctx.params
if ctx.subset == -1 then
for key, val in ipairs(tbl) do tbl[key] = nil end
elseif ctx.subset == 1 then
if ctx.pins == nil then
for key, val in ipairs(tbl) do fn(key, val) end
return
end
tmp = {}
for key, val in ipairs(tbl) do tmp[key] = val end
tbl = tmp
end
if ctx.pins ~= nil then
local marker = ctx.sorttype < 1 and ctx.subset ~= -1 or nil
for idx = 1, #ctx.pins do
tmp = ctx.pins[idx]
if tbl[tmp] ~= nil then
fn(tmp, tbl[tmp])
tbl[tmp] = marker
end
end
if ctx.subset == 1 then
for key, val in ipairs(tbl) do
if val ~= true then fn(key, val) end
end
return
end
end
if ctx.sorttype > 0 then
local nums, words, nn, nw =
get_sorted_key_list(tbl, natural_sort)
if ctx.sorttype == 2 then
for idx = 1, nw do fn(words[idx], tbl[words[idx]]) end
for idx = 1, nn do fn(nums[idx], tbl[nums[idx]]) end
return
end
for idx = 1, nn do fn(nums[idx], tbl[nums[idx]]) end
for idx = 1, nw do fn(words[idx], tbl[words[idx]]) end
return
end
if ctx.subset == -1 or ctx.pins == nil then
for key, val in ipairs(tbl) do
fn(key, val)
tbl[key] = nil
end
for key, val in pairs(tbl) do fn(key, val) end
return
end
for key, val in ipairs(tbl) do
if val ~= true then fn(key, val) end
tbl[key] = nil
end
for key, val in pairs(tbl) do
if val ~= true then fn(key, val) end
end
end
-- Flush the parameters by calling one of two custom functions for each value
-- (after this function has been invoked `ctx.params` will be no longer usable)
local function mixed_flush_params (ctx, fn_seq, fn_oth)
if ctx.subset == 1 then
flush_params(ctx, fn_seq)
return
end
if ctx.subset == -1 then
flush_params(ctx, fn_oth)
return
end
local tbl = ctx.params
if ctx.pins == nil and ctx.sorttype < 1 then
for key, val in ipairs(tbl) do
fn_seq(key, val)
tbl[key] = nil
end
for key, val in pairs(tbl) do fn_oth(key, val) end
return
end
local tseq = {}
for key, val in ipairs(tbl) do tseq[key] = val end
if ctx.pins ~= nil then
local tmp
local marker = ctx.sorttype < 1 or nil
for idx = 1, #ctx.pins do
tmp = ctx.pins[idx]
if tseq[tmp] ~= nil then
fn_seq(tmp, tbl[tmp])
tbl[tmp], tseq[tmp] = nil, marker
elseif tbl[tmp] ~= nil then
fn_oth(tmp, tbl[tmp])
tbl[tmp] = nil
end
end
end
if ctx.sorttype > 0 then
local nums, words, nn, nw =
get_sorted_key_list(tbl, natural_sort)
if ctx.sorttype == 2 then
for idx = 1, nw do
fn_oth(words[idx], tbl[words[idx]])
end
end
for idx = 1, nn do
if tseq[nums[idx]] ~= nil then
fn_seq(nums[idx], tseq[nums[idx]])
else fn_oth(nums[idx], tbl[nums[idx]]) end
end
if ctx.sorttype ~= 2 then
for idx = 1, nw do
fn_oth(words[idx], tbl[words[idx]])
end
end
return
end
for key, val in ipairs(tseq) do
if val ~= true then
fn_seq(key, val)
tbl[key] = nil
end
end
for key, val in pairs(tbl) do fn_oth(key, val) end
end
-- Finalize and return a concatenated list
local function finalize_and_return_concatenated_list (ctx, lst, len, modsize)
if len > 0 then
local tmp = ctx.oxfordsep or ctx.lastsep
if tmp ~= nil and len > modsize * 2 then
lst[len - modsize + 1] = tmp
elseif len > modsize and ctx.lastsep ~= nil then
lst[len - modsize + 1] = ctx.lastsep
end
lst[1] = ctx.header or ''
if ctx.footer ~= nil then lst[len + 1] = ctx.footer end
ctx.text = table.concat(lst)
else ctx.text = ctx.ifngiven or '' end
end
--- ---
--- PUBLIC ENVIRONMENT ---
--- ________________________________ ---
--- ---
--[[ Modifiers ]]--
-------------------
-- Syntax: #invoke:params|sequential|pipe to
library.sequential = function (ctx)
if ctx.subset == 1 then error(modulename ..
': The ‘sequential’ directive has been provided more than once', 0) end
if ctx.subset == -1 then error(modulename ..
': The two directives ‘non-sequential’ and ‘sequential’ are in contradiction with each other', 0) end
if ctx.sorttype > 0 then error(modulename ..
': The ‘all_sorted’ and ‘reassorted’ directives are redundant when followed by ‘sequential’', 0) end
ctx.iterfunc, ctx.subset = ipairs, 1
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|non-sequential|pipe to
library['non-sequential'] = function (ctx)
if ctx.subset == -1 then error(modulename ..
': The ‘non-sequential’ directive has been provided more than once', 0) end
if ctx.subset == 1 then error(modulename ..
': The two directives ‘sequential’ and ‘non-sequential’ are in contradiction with each other', 0) end
ctx.iterfunc, ctx.subset = pairs, -1
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|all_sorted|pipe to
library.all_sorted = function (ctx)
if ctx.sorttype == 1 then error(modulename ..
': The ‘all_sorted’ directive has been provided more than once', 0) end
if ctx.subset == 1 then error(modulename ..
': The ‘all_sorted’ directive is redundant after ‘sequential’', 0) end
if ctx.sorttype == 2 then error(modulename ..
': The two directives ‘reassorted’ and ‘sequential’ are in contradiction with each other', 0) end
ctx.sorttype = 1
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|reassorted|pipe to
library.reassorted = function (ctx)
if ctx.sorttype == 2 then error(modulename ..
': The ‘reassorted’ directive has been provided more than once', 0) end
if ctx.subset == 1 then error(modulename ..
': The ‘reassorted’ directive is redundant after ‘sequential’', 0) end
if ctx.sorttype == 1 then error(modulename ..
': The two directives ‘sequential’ and ‘reassorted’ are in contradiction with each other', 0) end
ctx.sorttype = 2
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|pinned_until|sentinel|[parameter name 1]|[parameter
-- name 2]|...|parameter name N|sentinel|pipe to
library.pinned_until = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘pinned_until’: No sentinel was provided', 0) end
local tmp, bucket, curr, ncurr
local sntl, idx = opts[offs + 1]:match'^%s*(.-)%s*$', 2
if ctx.pin_bucket == nil then
bucket, curr, ncurr = {}, {}, 0
ctx.pin_bucket, ctx.pins = bucket, curr
else bucket, curr, ncurr = ctx.pin_bucket, ctx.pins, ctx.npins end
while opts[offs + idx] ~= nil do
tmp = opts[offs + idx]:match'^%s*(.-)%s*$'
if tmp == sntl then
if idx == 2 then error(modulename ..
', ‘pinned_until’: No parameters to pin were provided', 0) end
ctx.npins = ncurr + idx - 2
return context_iterate(ctx, offs + idx + 1)
end
if tmp == '0' or tmp:find'^%-?[1-9]%d*$' ~= nil then
tmp = tonumber(tmp)
end
if bucket[tmp] then error(modulename ..
', ‘pinned_until’: Duplicate pinned parameter ‘' .. tostring(tmp) .. '’', 0) end
curr[ncurr + idx - 1], bucket[tmp], idx = tmp, true, idx + 1
end
error(modulename .. ', ‘pinned_until’: Missing sentinel in position #' .. tostring(idx), 0)
end
-- Syntax: #invoke:params|setting|directives|...|pipe to
library.setting = function (ctx)
local new_offs = set_strings_from_opts(ctx, ctx.pipe, ctx.fnpos + 1)
if new_offs - ctx.fnpos < 2 then error(modulename ..
', ‘setting’: No directive was given', 0) end
return context_iterate(ctx, new_offs + 1)
end
-- Syntax: #invoke:params|scoring|new parameter name|[container]|pipe to
library.scoring = function (ctx)
local opts, offs, retval = ctx.pipe, ctx.fnpos, 0
if opts[offs + 1] == nil then error(modulename ..
', ‘scoring’: No parameter name was provided', 0) end
local tmp
for _ in pairs(ctx.params) do retval = retval + 1 end
if opts[offs + 2] ~= nil then tmp = opts[offs + 2]:match'^%s*(.*%S)' end
if tmp == 'in_substack' then
new_substack(ctx)[get_param_name(opts[offs + 1])] =
tostring(retval)
return context_iterate(ctx, offs + 3)
end
ctx.params[get_param_name(opts[offs + 1])] = tostring(retval)
return context_iterate(ctx, tmp == 'here' and offs + 3 or offs + 2)
end
-- Syntax: #invoke:params|squeezing|pipe to
library.squeezing = function (ctx)
local store, indices, tbl, newlen = {}, {}, ctx.params, 0
for key, val in pairs(tbl) do
if type(key) == 'number' then
newlen = newlen + 1
indices[newlen], store[key], tbl[key] = key, val, nil
end
end
table.sort(indices)
for idx = 1, newlen do tbl[idx] = store[indices[idx]] end
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|filling_the_gaps|pipe to
library.filling_the_gaps = function (ctx)
local newval, tbl, tmp, nmin, nmax, nnums =
ctx.pipe[ctx.fnpos + 1], ctx.params, {}, 1, nil, -1
if newval == nil then error(modulename ..
', ‘filling_the_gaps’: No value was provided', 0) end
for key, val in pairs(tbl) do
if type(key) == 'number' then
if nmax == nil then
if key < nmin then nmin = key end
nmax = key
elseif key > nmax then nmax = key
elseif key < nmin then nmin = key end
tmp[key], nnums = val, nnums + 1
end
end
if nmax ~= nil and nmax - nmin > nnums then
ctx.n_available = ctx.n_available + nmin + nnums - nmax
if ctx.n_available < 0 then error(modulename ..
', ‘filling_the_gaps’: It is possible to fill at most ' .. tostring(maxfill) .. ' parameters', 0) end
for idx = nmin, nmax do tbl[idx] = newval end
for key, val in pairs(tmp) do tbl[key] = val end
end
return context_iterate(ctx, ctx.fnpos + 2)
end
-- Syntax: #invoke:params|clearing|pipe to
library.clearing = function (ctx)
local tbl, numerics = ctx.params, {}
for key, val in pairs(tbl) do
if type(key) == 'number' then
numerics[key], tbl[key] = val, nil
end
end
for key, val in ipairs(numerics) do tbl[key] = val end
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|cutting|left cut|right cut|pipe to
library.cutting = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
local lcut = tonumber(opts[offs + 1])
if lcut == nil or math.floor(lcut) ~= lcut then error(modulename ..
', ‘cutting’: Left cut must be an integer number', 0) end
local rcut = tonumber(opts[offs + 2])
if rcut == nil or math.floor(rcut) ~= rcut then error(modulename ..
', ‘cutting’: Right cut must be an integer number', 0) end
local tbl = ctx.params
local len = #tbl
if lcut < 0 then lcut = len + lcut end
if rcut < 0 then rcut = len + rcut end
local tot = lcut + rcut
if tot > 0 then
local cache = {}
if tot >= len then
for key in ipairs(tbl) do tbl[key] = nil end
tot = len
else
for idx = len - rcut + 1, len do tbl[idx] = nil end
for idx = 1, lcut do tbl[idx] = nil end
end
for key, val in pairs(tbl) do
if type(key) == 'number' and key > 0 then
if key > len then cache[key - tot] = val
else cache[key - lcut] = val end
tbl[key] = nil
end
end
for key, val in pairs(cache) do tbl[key] = val end
end
return context_iterate(ctx, offs + 3)
end
-- Syntax: #invoke:params|cropping|left crop|right crop|pipe to
library.cropping = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
local lcut = tonumber(opts[offs + 1])
if lcut == nil or math.floor(lcut) ~= lcut then error(modulename ..
', ‘cropping’: Left crop must be an integer number', 0) end
local rcut = tonumber(opts[offs + 2])
if rcut == nil or math.floor(rcut) ~= rcut then error(modulename ..
', ‘cropping’: Right crop must be an integer number', 0) end
local tbl = ctx.params
local nmin, nmax
for key in pairs(tbl) do
if type(key) == 'number' then
if nmin == nil then nmin, nmax = key, key
elseif key > nmax then nmax = key
elseif key < nmin then nmin = key end
end
end
if nmin ~= nil then
local len = nmax - nmin + 1
if lcut < 0 then lcut = len + lcut end
if rcut < 0 then rcut = len + rcut end
if lcut + rcut - len > -1 then
for key in pairs(tbl) do
if type(key) == 'number' then tbl[key] = nil end
end
elseif lcut + rcut > 0 then
for idx = nmax - rcut + 1, nmax do tbl[idx] = nil end
for idx = nmin, nmin + lcut - 1 do tbl[idx] = nil end
local lshift = nmin + lcut - 1
if lshift > 0 then
for idx = lshift + 1, nmax do
tbl[idx - lshift], tbl[idx] =
tbl[idx], nil
end
end
end
end
return context_iterate(ctx, offs + 3)
end
-- Syntax: #invoke:params|purging|start offset|length|pipe to
library.purging = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
local idx = tonumber(opts[offs + 1])
if idx == nil or math.floor(idx) ~= idx then error(modulename ..
', ‘purging’: Start offset must be an integer number', 0) end
local len = tonumber(opts[offs + 2])
if len == nil or math.floor(len) ~= len then error(modulename ..
', ‘purging’: Length must be an integer number', 0) end
local tbl = ctx.params
if len < 1 then
len = len + table.maxn(tbl)
if idx > len then return context_iterate(ctx, offs + 3) end
len = len - idx + 1
end
ctx.params = copy_table_reduced(tbl, idx, len)
return context_iterate(ctx, offs + 3)
end
-- Syntax: #invoke:params|backpurging|start offset|length|pipe to
library.backpurging = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
local last = tonumber(opts[offs + 1])
if last == nil or math.floor(last) ~= last then error(modulename ..
', ‘backpurging’: Start offset must be an integer number', 0) end
local len = tonumber(opts[offs + 2])
if len == nil or math.floor(len) ~= len then error(modulename ..
', ‘backpurging’: Length must be an integer number', 0) end
local idx
local tbl = ctx.params
if len > 0 then idx = last - len + 1
else
for key in pairs(tbl) do
if type(key) == 'number' and (idx == nil or
key < idx) then idx = key end
end
if idx == nil then return context_iterate(ctx, offs + 3) end
idx = idx - len
if last < idx then return context_iterate(ctx, offs + 3) end
len = last - idx + 1
end
ctx.params = copy_table_reduced(ctx.params, idx, len)
return context_iterate(ctx, offs + 3)
end
-- Syntax: #invoke:params|shifting|addend|pipe to
library.shifting = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local nshift = tonumber(ctx.pipe[ctx.fnpos + 1])
if nshift == nil or nshift == 0 or math.floor(nshift) ~= nshift then
error(modulename .. ', ‘shifting’: A non-zero integer number must be provided', 0) end
local tbl = {}
for key, val in pairs(ctx.params) do
if type(key) == 'number' then tbl[key + nshift] = val
else tbl[key] = val end
end
ctx.params = tbl
return context_iterate(ctx, ctx.fnpos + 2)
end
-- Syntax: #invoke:params|reversing_numeric_names|pipe to
library.reversing_numeric_names = function (ctx)
local tbl, numerics, nmax = ctx.params, {}, 0
for key, val in pairs(tbl) do
if type(key) == 'number' then
numerics[key], tbl[key] = val, nil
if key > nmax then nmax = key end
end
end
for key, val in pairs(numerics) do tbl[nmax - key + 1] = val end
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|pivoting_numeric_names|pipe to
--[[
library.pivoting_numeric_names = function (ctx)
local tbl = ctx.params
local shift = #tbl + 1
if shift < 2 then return library.reversing_numeric_names(ctx) end
local tmp = {}
for key, val in pairs(tbl) do
if type(key) == 'number' then tmp[key], tbl[key] = val, nil end
end
for key, val in pairs(tmp) do tbl[shift - key] = val end
return context_iterate(ctx, ctx.fnpos + 1)
end
]]--
-- Syntax: #invoke:params|mirroring_numeric_names|pipe to
--[[
library.mirroring_numeric_names = function (ctx)
local nmax, nmin
local tbl, tmp = ctx.params, {}
for key, val in pairs(tbl) do
if type(key) == 'number' then
tmp[key], tbl[key] = val, nil
if nmax == nil then nmin, nmax = key, key
elseif key > nmax then nmax = key
elseif key < nmin then nmin = key end
end
end
for key, val in pairs(tmp) do tbl[nmax + nmin - key] = val end
return context_iterate(ctx, ctx.fnpos + 1)
end
]]--
-- Syntax: #invoke:params|swapping_numeric_names|pipe to
--[[
library.swapping_numeric_names = function (ctx)
local tmp
local tbl, cache, nsize = ctx.params, {}, 1
for key in pairs(tbl) do
if type(key) == 'number' then
cache[nsize], nsize = key, nsize + 1
end
end
table.sort(cache)
for idx = math.floor((nsize - 1) / 2), 1, -1 do
tmp = tbl[cache[idx] ]
tbl[cache[idx] ] = tbl[cache[nsize - idx] ]
tbl[cache[nsize - idx] ] = tmp
end
return context_iterate(ctx, ctx.fnpos + 1)
end
]]--
-- Syntax: #invoke:params|sorting_sequential_values|[criterion]|pipe to
library.sorting_sequential_values = function (ctx)
local sortfn
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] ~= nil then
sortfn = sortfunctions[opts[offs + 1]:match'^%s*(.-)%s*$']
end
if sortfn then table.sort(ctx.params, sortfn)
else table.sort(ctx.params) end -- i.e. either `false` or `nil`
if sortfn == nil then return context_iterate(ctx, offs + 1) end
return context_iterate(ctx, offs + 2)
end
-- Syntax: #invoke:params|splicing|[add to position]|position|increment|
-- [number of elements to write]|...|pipe to
library.splicing = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local tmp2, argc, pos, refp
local tbl, opts, offs = ctx.params, ctx.pipe, ctx.fnpos
local tmp1 = opts[offs + 1]
if tmp1 ~= nil then
tmp2 = tonumber(tmp1)
if tmp2 == nil or math.floor(tmp2) ~= tmp2 then
pos, argc, tmp2 = tonumber(opts[offs + 2]), offs + 4,
tmp1:match'^%s*(.*%S)'
if tmp2 ~= nil then
refp = position_references[tmp2]
if refp == nil then error(modulename ..
', ‘splicing’: ‘' .. tostring(tmp2) .. '’ is not a valid first argument', 0) end
else refp = 0 end
else pos, argc, refp = tmp2, offs + 3, 0 end
else pos, argc, refp = tonumber(opts[offs + 2]), offs + 4, 0 end
if pos == nil or math.floor(pos) ~= pos then error(modulename ..
', ‘splicing’: The position must be an integer number', 0) end
local len = tonumber(opts[argc - 1])
if len == nil or math.floor(len) ~= len then error(modulename ..
', ‘splicing’: The increment must be an integer number', 0) end
local insn = tonumber(opts[argc])
if len == 0 and (insn == nil or insn < 1) then error(modulename ..
', ‘splicing’: When the increment is zero the number of elements to write cannot be zero', 0) end
if refp == 2 then
for _ in ipairs(tbl) do pos = pos + 1 end
refp = 0
end
tmp1, tmp2 = nil, nil
if refp ~= 0 or len ~= 0 then
for key, val in pairs(tbl) do
if type(key) == 'number' then
if tmp1 == nil then tmp1, tmp2 = key, key
elseif key < tmp1 then tmp1 = key
elseif key > tmp2 then tmp2 = key end
end
end
end
if tmp2 == nil then len = 0
elseif refp == 3 then pos = pos + tmp2
elseif refp == 1 then pos = pos + tmp1 end
if len > 0 and pos + len > tmp1 and pos <= tmp2 then
tbl = copy_table_expanded(tbl, pos, len)
elseif len < 0 and pos - len > tmp1 and pos <= tmp2 then
tbl = copy_table_reduced(tbl, pos, -len)
else tbl = copy_or_ref_table(tbl, tbl ~= ctx.oparams) end
ctx.params = tbl
if insn == nil or insn < 0 or math.floor(insn) ~= insn then
return context_iterate(ctx, argc)
end
tmp1 = argc - offs - pos + 1
for key = pos, pos + insn - 1 do tbl[key] = opts[offs + key + tmp1] end
return context_iterate(ctx, argc + insn + 1)
end
-- Syntax: #invoke:params|imposing|name|value|pipe to
library.imposing = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘imposing’: Missing parameter name to impose', 0) end
ctx.params[get_param_name(opts[offs + 1])] = opts[offs + 2]
return context_iterate(ctx, offs + 3)
end
-- Syntax: #invoke:params|providing|name|value|pipe to
library.providing = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘providing’: Missing parameter name to provide', 0) end
local key = get_param_name(opts[offs + 1])
if ctx.params[key] == nil then ctx.params[key] = opts[offs + 2] end
return context_iterate(ctx, offs + 3)
end
-- Syntax: #invoke:params|reassigning|source|destination|[mode]|pipe to
library.reassigning = function (ctx)
local tbl, opts, offs = ctx.params, ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘reassigning’: Missing source parameter', 0) end
if opts[offs + 2] == nil then error(modulename ..
', ‘reassigning’: Missing destination parameter', 0) end
local mode, argc
local src = get_param_name(opts[offs + 1])
local val = tbl[src]
if opts[offs + 3] ~= nil then
mode = a_modes[opts[offs + 3]:match'^%s*(.-)%s*$']
end
if mode == nil then mode, argc = 0, offs + 3 else argc = offs + 4 end
if val == nil and mode > 1 then return context_iterate(ctx, argc) end
local dest = get_param_name(opts[offs + 2])
local tmp = tbl[dest] == nil
if mode % 2 == 0 or (mode == 7 and tmp) then tbl[src] = nil end
if tmp or mode < 4 then tbl[dest] = val end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|discarding|name|[how many]|pipe to
library.discarding = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘discarding’: Missing parameter name to discard', 0) end
local len = tonumber(opts[offs + 2])
if len == nil then
ctx.params[get_param_name(opts[offs + 1])] = nil
return context_iterate(ctx, offs + 2)
end
local key = tonumber(opts[offs + 1])
if key == nil or math.floor(key) ~= key then error(modulename ..
', ‘discarding’: A range was provided, but the initial parameter name is not an integer number', 0) end
if len < 1 or math.floor(len) ~= len then error(modulename ..
', ‘discarding’: A range can only be an integer number greater than zero', 0) end
for idx = key, key + len - 1 do ctx.params[idx] = nil end
return context_iterate(ctx, offs + 3)
end
-- Syntax: #invoke:params|excluding_non-numeric_names|pipe to
library['excluding_non-numeric_names'] = function (ctx)
local tmp = ctx.params
for key, val in pairs(tmp) do
if type(key) ~= 'number' then tmp[key] = nil end
end
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|excluding_numeric_names|pipe to
library.excluding_numeric_names = function (ctx)
local tmp = ctx.params
for key, val in pairs(tmp) do
if type(key) == 'number' then tmp[key] = nil end
end
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|with_name_matching|target 1|[plain flag 1]|[or]|
-- [target 2]|[plain flag 2]|[or]|[...]|[target N]|[plain flag
-- N]|pipe to
library.with_name_matching = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local tmp, ptn
local tbl, newparams, opts, offs = ctx.params, {}, ctx.pipe, ctx.fnpos
local targets, nptns, argc = load_pattern_args(opts, offs,
'with_name_matching')
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
tmp = ptn[1]
if tmp == '0' or tmp:find'^%-?[1-9]%d*$' ~= nil then
tmp = tonumber(tmp)
end
newparams[tmp] = tbl[tmp]
else
for key, val in pairs(tbl) do
if tostring(key):find(ptn[1], 1, ptn[2]) then
newparams[key] = val
end
end
end
end
ctx.params = newparams
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|with_name_not_matching|target 1|[plain flag 1]|
-- [and]|[target 2]|[plain flag 2]|[and]|[...]|[target N]|[plain
-- flag N]|pipe to
library.with_name_not_matching = function (ctx)
local tbl, opts, offs = ctx.params, ctx.pipe, ctx.fnpos
local targets, nptns, argc = load_pattern_args(opts, offs,
'with_name_not_matching')
if nptns == 1 and targets[1][3] then
local tmp = targets[1][1]
if tmp == '0' or tmp:find'^%-?[1-9]%d*$' ~= nil then
tbl[tonumber(tmp)] = nil
else tbl[tmp] = nil end
return context_iterate(ctx, argc)
end
local yesmatch, ptn
for key in pairs(tbl) do
yesmatch = true
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
if tostring(key) ~= ptn[1] then
yesmatch = false
break
end
elseif not tostring(key):find(ptn[1], 1, ptn[2]) then
yesmatch = false
break
end
end
if yesmatch then tbl[key] = nil end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|with_value_matching|target 1|[plain flag 1]|[or]|
-- [target 2]|[plain flag 2]|[or]|[...]|[target N]|[plain flag
-- N]|pipe to
library.with_value_matching = function (ctx)
local nomatch, ptn
local tbl, opts, offs = ctx.params, ctx.pipe, ctx.fnpos
local targets, nptns, argc = load_pattern_args(opts, offs,
'with_value_matching')
for key, val in pairs(tbl) do
nomatch = true
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
if val == ptn[1] then
nomatch = false
break
end
elseif val:find(ptn[1], 1, ptn[2]) then
nomatch = false
break
end
end
if nomatch then tbl[key] = nil end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|with_value_not_matching|target 1|[plain flag 1]|
-- [and]|[target 2]|[plain flag 2]|[and]|[...]|[target N]|[plain
-- flag N]|pipe to
library.with_value_not_matching = function (ctx)
local yesmatch, ptn
local tbl, opts, offs = ctx.params, ctx.pipe, ctx.fnpos
local targets, nptns, argc = load_pattern_args(opts, offs,
'with_value_not_matching')
for key, val in pairs(tbl) do
yesmatch = true
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
if val ~= ptn[1] then
yesmatch = false
break
end
elseif not val:find(ptn[1], 1, ptn[2]) then
yesmatch = false
break
end
end
if yesmatch then tbl[key] = nil end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|keeping_at_most|number of parameters to pick|pipe to
library.keeping_at_most = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local len = tonumber(ctx.pipe[ctx.fnpos + 1])
if len == nil or len < 1 or math.floor(len) ~= len then error(modulename ..
', ‘keeping_at_most’: The number of parameters to keep must be an integer greater than zero', 0) end
ctx.params = copy_table_maxn({}, ctx.params, len)
return context_iterate(ctx, ctx.fnpos + 2)
end
-- Syntax: #invoke:params|trimming_values|pipe to
library.trimming_values = function (ctx)
local tbl = ctx.params
for key, val in pairs(tbl) do tbl[key] = val:match'^%s*(.-)%s*$' end
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|mapping_to_lowercase|pipe to
library.mapping_to_lowercase = function (ctx)
local tbl = ctx.params
for key, val in pairs(tbl) do tbl[key] = val:lower() end
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|mapping_to_uppercase|pipe to
library.mapping_to_uppercase = function (ctx)
local tbl = ctx.params
for key, val in pairs(tbl) do tbl[key] = val:upper() end
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|mapping_by_calling|template name|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- parameters]|[parameter 1]|[parameter 2]|[...]|[parameter N]|pipe to
library.mapping_by_calling = function (ctx)
local tname
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] ~= nil then
tname = opts[offs + 1]:match'^%s*(.*%S)'
end
if tname == nil then error(modulename ..
', ‘mapping_by_calling’: No template name was provided', 0) end
local margs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, offs + 1, mapping_styles.values_only,
ctx.params)
local model = { title = tname, args = margs }
value_maps[looptype](tbl, margs, karg, varg, function ()
return ctx.frame:expandTemplate(model)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_invoking|module name|function name|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.mapping_by_invoking = function (ctx)
local mname, fname
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] ~= nil then
mname = opts[offs + 1]:match'^%s*(.*%S)'
end
if mname == nil then error(modulename ..
', ‘mapping_by_invoking’: No module name was provided', 0) end
if opts[offs + 2] ~= nil then
fname = opts[offs + 2]:match'^%s*(.*%S)'
end
if fname == nil then error(modulename ..
', ‘mapping_by_invoking’: No function name was provided', 0) end
local margs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, offs + 2, mapping_styles.values_only,
ctx.params)
local model = { title = 'Module:' .. mname, args = margs }
local mfunc = require(model.title)[fname]
if mfunc == nil then error(modulename ..
', ‘mapping_by_invoking’: The function ‘' .. fname .. '’ does not exist', 0) end
value_maps[looptype](tbl, margs, karg, varg, function ()
return tostring(mfunc(ctx.frame:newChild(model)))
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_magic|parser function|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.mapping_by_magic = function (ctx)
local magic
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] ~= nil then magic = opts[offs + 1]:match'^%s*(.*%S)' end
if magic == nil then error(modulename ..
', ‘mapping_by_magic’: No parser function was provided', 0) end
local margs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, offs + 1, mapping_styles.values_only,
ctx.params)
value_maps[looptype](tbl, margs, karg, varg, function ()
return ctx.frame:callParserFunction(magic, margs)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_replacing|target|replace|[count]|[plain
-- flag]|pipe to
library.mapping_by_replacing = function (ctx)
local ptn, repl, nmax, flg, argc, die =
load_replace_args(ctx.pipe, ctx.fnpos, 'mapping_by_replacing')
if die then return context_iterate(ctx, argc) end
local tbl = ctx.params
if flg == 3 then
for key, val in pairs(tbl) do
if val == ptn then tbl[key] = repl end
end
else
if flg == 2 then
-- Copied from Module:String's `str._escapePattern()`
ptn = ptn:gsub('[%(%)%.%%%+%-%*%?%[%^%$%]]', '%%%0')
end
for key, val in pairs(tbl) do
tbl[key] = val:gsub(ptn, repl, nmax)
end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_mixing|mixing string|pipe to
library.mapping_by_mixing = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘mapping_by_mixing’: No mixing string was provided', 0) end
local tbl, mix = ctx.params, opts[offs + 1]
if mix == '$#' then
for key in pairs(tbl) do tbl[key] = tostring(key) end
return context_iterate(ctx, offs + 2)
end
local skel, cnv, n_parts = parse_placeholder_string(mix)
for key, val in pairs(tbl) do
for idx = 2, n_parts, 2 do
if skel[idx] then cnv[idx] = val
else cnv[idx] = tostring(key) end
end
tbl[key] = table.concat(cnv)
end
return context_iterate(ctx, offs + 2)
end
-- Syntax: #invoke:params|renaming_to_lowercase|pipe to
library.renaming_to_lowercase = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache = {}
for key, val in pairs(ctx.params) do
if type(key) == 'string' then cache[key:lower()] = val else
cache[key] = val end
end
ctx.params = cache
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|renaming_to_uppercase|pipe to
library.renaming_to_uppercase = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache = {}
for key, val in pairs(ctx.params) do
if type(key) == 'string' then cache[key:upper()] = val else
cache[key] = val end
end
ctx.params = cache
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|renaming_to_sequence|[sort order]|pipe to
library.renaming_to_sequence = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache, len
local tbl = ctx.params
local sortfn, argc, do_sort = load_sort_opt(ctx.pipe[ctx.fnpos + 1])
if do_sort then
local words, wl
cache, words, len, wl = get_sorted_key_list(tbl, sortfn)
for idx = 1, len do cache[idx] = tbl[cache[idx]] end
for idx = 1, wl do cache[len + idx] = tbl[words[idx]] end
else
cache, len = {}, 1
for _, val in pairs(tbl) do cache[len], len = val, len + 1 end
end
ctx.params = cache
return context_iterate(ctx, ctx.fnpos + argc)
end
-- Syntax: #invoke:params|renaming_by_calling|template name|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- parameters]|[parameter 1]|[parameter 2]|[...]|[parameter N]|pipe to
library.renaming_by_calling = function (ctx)
local tname
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] ~= nil then
tname = opts[offs + 1]:match'^%s*(.*%S)'
end
if tname == nil then error(modulename ..
', ‘renaming_by_calling’: No template name was provided', 0) end
local rargs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, offs + 1, mapping_styles.names_only,
ctx.params)
local model = { title = tname, args = rargs }
map_names(tbl, rargs, karg, varg, looptype, function ()
return ctx.frame:expandTemplate(model)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_invoking|module name|function
-- name|[call style]|[let/use]|[...]|[let/use]|[...]|[number of
-- additional arguments]|[argument 1]|[argument 2]|[...]|[argument
-- N]|pipe to
library.renaming_by_invoking = function (ctx)
local mname, fname
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] ~= nil then
mname = opts[offs + 1]:match'^%s*(.*%S)'
end
if mname == nil then error(modulename ..
', ‘renaming_by_invoking’: No module name was provided', 0) end
if opts[offs + 2] ~= nil then
fname = opts[offs + 2]:match'^%s*(.*%S)'
end
if fname == nil then error(modulename ..
', ‘renaming_by_invoking’: No function name was provided', 0) end
local rargs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, offs + 2, mapping_styles.names_only,
ctx.params)
local model = { title = 'Module:' .. mname, args = rargs }
local mfunc = require(model.title)[fname]
if mfunc == nil then error(modulename ..
', ‘renaming_by_invoking’: The function ‘' .. fname .. '’ does not exist', 0) end
map_names(tbl, rargs, karg, varg, looptype, function ()
return tostring(mfunc(ctx.frame:newChild(model)))
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_magic|parser function|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.renaming_by_magic = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
local magic
if opts[offs + 1] ~= nil then
magic = opts[offs + 1]:match'^%s*(.*%S)'
end
if magic == nil then error(modulename ..
', ‘renaming_by_magic’: No parser function was provided', 0) end
local rargs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, offs + 1, mapping_styles.names_only,
ctx.params)
map_names(tbl, rargs, karg, varg, looptype, function ()
return ctx.frame:callParserFunction(magic, rargs)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_replacing|target|replace|[count]|[plain
-- flag]|pipe to
library.renaming_by_replacing = function (ctx)
local ptn, repl, nmax, flg, argc, die =
load_replace_args(ctx.pipe, ctx.fnpos, 'renaming_by_replacing')
if die then return context_iterate(ctx, argc) end
local tbl = ctx.params
if flg == 3 then
ptn = get_param_name(ptn)
local val = tbl[ptn]
if val ~= nil then
tbl[ptn], tbl[get_param_name(repl)] = nil, val
end
else
if flg == 2 then
-- Copied from Module:String's `str._escapePattern()`
ptn = ptn:gsub('[%(%)%.%%%+%-%*%?%[%^%$%]]', '%%%0')
end
local cache = {}
for key, val in pairs(tbl) do
steal_if_renamed(val, tbl, key, cache,
tostring(key):gsub(ptn, repl, nmax))
end
for key, val in pairs(cache) do tbl[key] = val end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_mixing|mixing string|pipe to
library.renaming_by_mixing = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local mix = ctx.pipe[ctx.fnpos + 1]
if mix == nil then error(modulename ..
', ‘renaming_by_mixing’: No mixing string was provided', 0) end
local cache = {}
mix = mix:match'^%s*(.-)%s*$'
if mix == '$@' then
for _, val in pairs(ctx.params) do
cache[get_param_name(val)] = val
end
else
local skel, canvas, n_parts = parse_placeholder_string(mix)
for key, val in pairs(ctx.params) do
for idx = 2, n_parts, 2 do
if skel[idx] then canvas[idx] = val
else canvas[idx] = tostring(key) end
end
cache[get_param_name(table.concat(canvas))] = val
end
end
ctx.params = cache
return context_iterate(ctx, ctx.fnpos + 2)
end
-- Syntax: #invoke:params|grouping_by_calling|template
-- name|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.grouping_by_calling = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local opts, offs = ctx.pipe, ctx.fnpos
local tmp, argc, tbl, mem =
load_child_opts(opts, offs + 2, 0, ctx.params)
local gargs = {}
for key, val in pairs(tmp) do
if type(key) == 'number' and key < 1 then gargs[key - 1] = val
else gargs[key] = val end
end
tmp = opts[offs + 1]
if tmp ~= nil then tmp = tmp:match'^%s*(.*%S)' end
if tmp == nil then error(modulename ..
', ‘grouping_by_calling’: No template name was provided', 0) end
local model = { title = tmp }
local groups = make_groups(tbl)
for gid, group in pairs(groups) do
for key, val in pairs(gargs) do group[key] = val end
group[0], model.args = gid, group
groups[gid] = ctx.frame:expandTemplate(model)
end
for key, val in pairs(mem) do groups[key] = val end
ctx.params = groups
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|parsing|string to parse|[trim flag]|[iteration
-- delimiter setter]|[...]|[key-value delimiter setter]|[...]|pipe to
library.parsing = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘parsing’: No string to parse was provided', 0) end
local isep, iplain, psep, pplain, trimnamed, trimunnamed, argc =
load_parse_opts(opts, offs + 2, '|', '=')
parse_parameter_string(ctx.params, opts[offs + 1], isep, iplain, psep,
pplain, trimnamed, trimunnamed)
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|reinterpreting|parameter to reinterpret|[trim
-- flag]|[iteration delimiter setter]|[...]|[key-value delimiter
-- setter]|[...]|pipe to
library.reinterpreting = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘reinterpreting’: No parameter to reinterpret was provided', 0) end
local isep, iplain, psep, pplain, trimnamed, trimunnamed, argc =
load_parse_opts(opts, offs + 2, '|', '=')
local tbl, tmp = ctx.params, get_param_name(opts[offs + 1])
local str = tbl[tmp]
if str ~= nil then
tbl[tmp] = nil
parse_parameter_string(tbl, str, isep, iplain, psep, pplain,
trimnamed, trimunnamed)
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|evaluating|string to parse|[trim flag]|[iteration
-- delimiter setter]|[...]|[key-value delimiter setter]|[...]|pipe to
library.evaluating = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘evaluating’: No string to parse was provided', 0) end
local isep, iplain, psep, pplain, trimnamed, trimunnamed, repos =
load_parse_opts(opts, offs + 2, '!', ':')
if opts[offs + 1]:match'^%s*(.*%S)' == nil then
remove_numeric_keys(opts, offs, repos - offs)
return context_iterate(ctx, offs)
end
local new_opts, cache = {}, {}
parse_parameter_string(cache, opts[offs + 1], isep, iplain, psep,
pplain, trimnamed, trimunnamed)
local shift = #cache + offs - repos + 1
for key, val in pairs(opts) do
if type(key) ~= 'number' or key < offs then new_opts[key] = val
elseif key >= repos then new_opts[key + shift] = val end
end
for key, val in pairs(cache) do
if type(key) ~= 'number' or key < 1 then new_opts[key] = val
else new_opts[key + offs] = val end
end
ctx.pipe = new_opts
return context_iterate(ctx, offs + 1)
end
-- Syntax: #invoke:params|mixing_names_and_values|mixing string|pipe to
library.mixing_names_and_values = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘mixing_names_and_values’: No mixing string was provided for parameter names', 0) end
if opts[offs + 2] == nil then error(modulename ..
', ‘mixing_names_and_values’: No mixing string was provided for parameter values', 0) end
local tmp
local cache, mix_k, mix_v =
{}, opts[offs + 1]:match'^%s*(.-)%s*$', opts[offs + 2]
if mix_k == '$@' and mix_v == '$@' then
for _, val in pairs(ctx.params) do
cache[get_param_name(val)] = val
end
elseif mix_k == '$@' and mix_v == '$#' then
for key, val in pairs(ctx.params) do
cache[get_param_name(val)] = tostring(key)
end
elseif mix_k == '$#' and mix_v == '$#' then
for key in pairs(ctx.params) do cache[key] = tostring(key) end
else
local skel_k, cnv_k, n_parts_k = parse_placeholder_string(mix_k)
local skel_v, cnv_v, n_parts_v = parse_placeholder_string(mix_v)
for key, val in pairs(ctx.params) do
tmp = tostring(key)
for idx = 2, n_parts_k, 2 do
if skel_k[idx] then cnv_k[idx] = val
else cnv_k[idx] = tmp end
end
for idx = 2, n_parts_v, 2 do
if skel_v[idx] then cnv_v[idx] = val
else cnv_v[idx] = tmp end
end
cache[get_param_name(table.concat(cnv_k))] =
table.concat(cnv_v)
end
end
ctx.params = cache
return context_iterate(ctx, offs + 3)
end
-- Syntax: #invoke:params|combining|new parameter name|[sort
-- order]|[with/without flushed glue]|setting directives|...|pipe to
library.combining = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
return context_iterate(ctx, combine_parameters(
ctx,
function (key, val, kvs) return key .. kvs .. val end,
'combining'
) + 1)
end
-- Syntax: #invoke:params|combining_values|new parameter name|[sort
-- order]|[with/without flushed glue]|setting directives|...|pipe to
library.combining_values = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
return context_iterate(ctx, combine_parameters(
ctx,
function (key, val, kvs) return val end,
'combining_values'
) + 1)
end
-- Syntax: #invoke:params|combining_by_calling|template name|new parameter
-- name|pipe to
library.combining_by_calling = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local opts, offs = ctx.pipe, ctx.fnpos
local tname = opts[offs + 1]
if tname ~= nil then tname = tname:match'^%s*(.*%S)'
else error(modulename ..
', ‘combining_by_calling’: No template name was provided', 0) end
if opts[offs + 2] == nil then error(modulename ..
', ‘combining_by_calling’: No parameter name was provided', 0) end
ctx.params = {
[get_param_name(opts[offs + 2])] = ctx.frame:expandTemplate{
title = tname,
args = ctx.params
}
}
return context_iterate(ctx, offs + 3)
end
-- Syntax: #invoke:params|combining_by_invoking|module name|function name|new
-- parameter name|pipe to
library.combining_by_invoking = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local opts, offs = ctx.pipe, ctx.fnpos
local mname = opts[offs + 1]
if mname ~= nil then mname = mname:match'^%s*(.*%S)'
else error(modulename ..
', ‘combining_by_invoking’: No module name was provided', 0) end
local fname = opts[offs + 2]
if fname ~= nil then fname = fname:match'^%s*(.*%S)'
else error(modulename ..
', ‘combining_by_invoking’: No function name was provided', 0) end
if opts[offs + 3] == nil then error(modulename ..
', ‘combining_by_invoking’: No parameter name was provided', 0) end
local model = { title = 'Module:' .. mname, args = ctx.params }
local mfunc = require(model.title)[fname]
if mfunc == nil then error(modulename ..
', ‘mapping_by_invoking’: The function ‘' .. fname .. '’ does not exist', 0) end
ctx.params = {
[get_param_name(opts[offs + 3])] =
tostring(mfunc(ctx.frame:newChild(model)))
}
return context_iterate(ctx, offs + 4)
end
-- Syntax: #invoke:params|combining_by_magic|parser function|new parameter
-- name|pipe to
library.combining_by_magic = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local opts, offs = ctx.pipe, ctx.fnpos
local magic = opts[offs + 1]
if magic ~= nil then magic = magic:match'^%s*(.*%S)'
else error(modulename ..
', ‘combining_by_magic’: No parser function was provided', 0) end
if opts[offs + 2] == nil then error(modulename ..
', ‘combining_by_magic’: No parameter name was provided', 0) end
ctx.params = {
[get_param_name(opts[offs + 2])] =
ctx.frame:callParserFunction(magic, ctx.params)
}
return context_iterate(ctx, offs + 3)
end
-- Syntax: #invoke:params|snapshotting|[maximum number]|pipe to
library.snapshotting = function (ctx)
return context_iterate(ctx, ctx.fnpos + make_child(ctx, ctx.params, 'snapshotting'))
end
-- Syntax: #invoke:params|remembering|[maximum number]|pipe to
library.remembering = function (ctx)
return context_iterate(ctx, ctx.fnpos + make_child(ctx, ctx.oparams, 'remembering'))
end
-- Syntax: #invoke:params|entering_substack|[new]|pipe to
library.entering_substack = function (ctx)
local tbl, opts, offs, ncurrparent =
ctx.params, ctx.pipe, ctx.fnpos, ctx.n_parents + 1
if ctx.parents == nil then ctx.parents = { tbl }
else ctx.parents[ncurrparent] = tbl end
ctx.n_parents = ncurrparent
if opts[offs + 1] ~= nil and opts[offs + 1]:match'^%s*new%s*$' then
ctx.params = {}
return context_iterate(ctx, offs + 2)
end
local currsnap = ctx.n_children
if currsnap > 0 then
ctx.params, ctx.children[currsnap], ctx.n_children =
ctx.children[currsnap], nil, currsnap - 1
else
local newparams = {}
for key, val in pairs(tbl) do newparams[key] = val end
ctx.params = newparams
end
return context_iterate(ctx, offs + 1)
end
-- Syntax: #invoke:params|pulling|parameter name|pipe to
library.pulling = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘pulling’: No parameter to pull was provided', 0) end
local tmp = ctx.n_parents
local parent = tmp < 1 and ctx.oparams or ctx.parents[tmp]
tmp = get_param_name(opts[offs + 1])
if parent[tmp] ~= nil then ctx.params[tmp] = parent[tmp] end
return context_iterate(ctx, ctx.fnpos + 2)
end
-- Syntax: #invoke:params|recalling|parameter name|pipe to
library.recalling = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘recalling’: No parameter to recall was provided', 0) end
local arg = get_param_name(opts[offs + 1])
if ctx.oparams[arg] ~= nil then ctx.params[arg] = ctx.oparams[arg] end
return context_iterate(ctx, ctx.fnpos + 2)
end
-- Syntax: #invoke:params|finding|parameter name|pipe to
--[[
library.finding = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘finding’: No parameter to find was provided', 0) end
local arg = get_param_name(opts[offs + 1])
local parent
for idx = ctx.n_parents, 1, -1 do
parent = ctx.parents[idx]
if parent[arg] ~= nil then
ctx.params[arg] = parent[arg]
return context_iterate(ctx, offs + 2)
end
end
if ctx.oparams[arg] ~= nil then ctx.params[arg] = ctx.oparams[arg] end
return context_iterate(ctx, offs + 2)
end
]]--
-- Syntax: #invoke:params|picking|number of parameters to pick|pipe to
--[[
library.picking = function (ctx)
local len = tonumber(ctx.pipe[ctx.fnpos + 1])
if len == nil or len < 1 or math.floor(len) ~= len then error(modulename ..
', ‘picking’: The number of parameters to pick must be an integer greater than zero', 0) end
if ctx.n_parents < 1 then copy_table_maxn(ctx.params, ctx.oparams, len)
else copy_table_maxn(ctx.params, ctx.parents[ctx.n_parents], len) end
return context_iterate(ctx, ctx.fnpos + 2)
end
]]--
-- Syntax: #invoke:params|detaching_substack|pipe to
library.detaching_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘detaching_substack’: No substack has been created', 0) end
local parent = ctx.parents[ncurrparent]
for key in pairs(ctx.params) do parent[key] = nil end
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|dropping_substack|pipe to
library.dropping_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘dropping_substack’: No substack has been created', 0) end
ctx.params, ctx.parents[ncurrparent], ctx.n_parents =
ctx.parents[ncurrparent], nil, ncurrparent - 1
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|leaving_substack|pipe to
library.leaving_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘leaving_substack’: No substack has been created', 0) end
local currsnap = ctx.n_children + 1
if ctx.children == nil then ctx.children = { ctx.params }
else ctx.children[currsnap] = ctx.params end
ctx.params, ctx.parents[ncurrparent], ctx.n_parents, ctx.n_children =
ctx.parents[ncurrparent], nil, ncurrparent - 1, currsnap
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|merging_substack|pipe to
library.merging_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘merging_substack’: No substack has been created', 0) end
local parent, child = ctx.parents[ncurrparent], ctx.params
ctx.params, ctx.parents[ncurrparent], ctx.n_parents = parent, nil,
ncurrparent - 1
for key, val in pairs(child) do parent[key] = val end
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|flushing|pipe to
library.flushing = function (ctx)
if ctx.n_children < 1 then error(modulename ..
', ‘flushing’: There are no substacks to flush', 0) end
local parent, currsnap = ctx.params, ctx.n_children
for key, val in pairs(ctx.children[currsnap]) do parent[key] = val end
ctx.children[currsnap], ctx.n_children = nil, currsnap - 1
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|setting_by_flushing|pipe to
library.setting_by_flushing = function (ctx)
set_strings_from_substack(ctx, ctx, 'setting_by_flushing')
return context_iterate(ctx, ctx.fnpos + 1)
end
--[[ Functions ]]--
-----------------------------
-- Syntax: #invoke:params|count
library.count = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local retval = 0
for _ in ctx.iterfunc(ctx.params) do retval = retval + 1 end
if ctx.subset == -1 then retval = retval - #ctx.params end
ctx.text = retval
return false
end
-- Syntax: #invoke:args|concat_and_call|template name|[prepend 1]|[prepend 2]|
-- [...]|[item n]|[named item 1=value 1]|[...]|[named item n=value
-- n]|[...]
library.concat_and_call = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local tname
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] ~= nil then
tname = opts[offs + 1]:match'^%s*(.*%S)'
end
if tname == nil then error(modulename ..
', ‘concat_and_call’: No template name was provided', 0) end
ctx.text = ctx.frame:expandTemplate{
title = tname,
args = concat_params(ctx, offs + 1)
}
return false
end
-- Syntax: #invoke:args|concat_and_invoke|module name|function name|[prepend
-- 1]|[prepend 2]|[...]|[item n]|[named item 1=value 1]|[...]|[named
-- item n=value n]|[...]
library.concat_and_invoke = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local mname, fname
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] ~= nil then
mname = opts[offs + 1]:match'^%s*(.*%S)'
end
if mname == nil then error(modulename ..
', ‘concat_and_invoke’: No module name was provided', 0) end
if opts[offs + 2] ~= nil then
fname = opts[offs + 2]:match'^%s*(.*%S)'
end
if fname == nil then error(modulename ..
', ‘concat_and_invoke’: No function name was provided', 0) end
local mfunc = require('Module:' .. mname)[fname]
if mfunc == nil then error(modulename ..
', ‘concat_and_invoke’: The function ‘' .. fname .. '’ does not exist', 0) end
ctx.text = mfunc(ctx.frame:newChild{
title = 'Module:' .. mname,
args = concat_params(ctx, offs + 2)
})
return false
end
-- Syntax: #invoke:args|concat_and_magic|parser function|[prepend 1]|[prepend
-- 2]|[...]|[item n]|[named item 1=value 1]|[...]|[named item n=
-- value n]|[...]
library.concat_and_magic = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local magic
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] ~= nil then
magic = opts[offs + 1]:match'^%s*(.*%S)'
end
if magic == nil then error(modulename ..
', ‘concat_and_magic’: No parser function was provided', 0) end
ctx.text = ctx.frame:callParserFunction(magic,
concat_params(ctx, offs + 1))
return false
end
-- Syntax: #invoke:params|value_of|parameter name
library.value_of = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘value_of’: No parameter name was provided', 0) end
local val
local key = opts[offs + 1]:match'^%s*(.-)%s*$'
if key == '0' or key:find'^%-?[1-9]%d*$' ~= nil then
key = tonumber(key)
val = ctx.params[key]
-- No worries: #ctx.params is unused when the modifier is in
-- first position (and therefore `ctx.params` is a metatable)
if val ~= nil and (
ctx.subset ~= -1 or key > #ctx.params or key < 1
) and (
ctx.subset ~= 1 or (key <= #ctx.params and key > 0)
) then
ctx.text = (ctx.header or '') .. val ..
(ctx.footer or '')
else ctx.text = ctx.ifngiven or '' end
else
val = ctx.params[key]
if ctx.subset ~= 1 and val ~= nil then ctx.text = (ctx.header
or '') .. val .. (ctx.footer or '')
else ctx.text = ctx.ifngiven or '' end
end
return false
end
-- Syntax: #invoke:params|list
library.list = function (ctx)
local ret, nss, kvs, pps = {}, 0, ctx.pairsep or '', ctx.itersep or ''
flush_params(ctx, function (key, val)
ret[nss + 1], ret[nss + 2], ret[nss + 3], ret[nss + 4], nss =
pps, key, kvs, val, nss + 4
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 4)
return false
end
-- Syntax: #invoke:params|list_values
library.list_values = function (ctx)
-- NOTE: `library.coins()` and `library.unique_coins()` rely on us
local ret, nss, pps = {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
ret[nss + 1], ret[nss + 2], nss = pps, val, nss + 2
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|list_maybe_with_names
library.list_maybe_with_names = function (ctx)
local ret, nss, kvs, pps = {}, 0, ctx.pairsep or '', ctx.itersep or ''
mixed_flush_params(
ctx,
function (key, val)
ret[nss + 1], ret[nss + 2], ret[nss + 3],
ret[nss + 4], nss = pps, '', '', val, nss + 4
end,
function (key, val)
ret[nss + 1], ret[nss + 2], ret[nss + 3],
ret[nss + 4], nss = pps, key, kvs, val, nss + 4
end
)
finalize_and_return_concatenated_list(ctx, ret, nss, 4)
return false
end
-- Syntax: #invoke:params|for_each|wikitext
library.for_each = function (ctx)
local ret, nss, pps, txt =
{}, 0, ctx.itersep or '', ctx.pipe[ctx.fnpos + 1] or ''
local skel, cnv, n_parts = parse_placeholder_string(txt)
flush_params(ctx, function (key, val)
for idx = 2, n_parts, 2 do
if skel[idx] then cnv[idx] = val
else cnv[idx] = tostring(key) end
end
ret[nss + 1], nss = pps, nss + 2
ret[nss] = table.concat(cnv)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|call_for_each|template name|[append 1]|[append 2]|
-- [...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.call_for_each = function (ctx)
local tname
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] ~= nil then
tname = opts[offs + 1]:match'^%s*(.*%S)'
end
if tname == nil then error(modulename ..
', ‘call_for_each’: No template name was provided', 0) end
local cargs = copy_table_reduced(opts, 1, offs - 1)
local model, ret, nss, ccs =
{ title = tname, args = cargs }, {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
cargs[1], cargs[2], ret[nss + 1], nss = key, val, ccs, nss + 2
ret[nss] = ctx.frame:expandTemplate(model)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|invoke_for_each|module name|module function|[append
-- 1]|[append 2]|[...]|[append n]|[named param 1=value 1]|[...]|
-- [named param n=value n]|[...]
library.invoke_for_each = function (ctx)
local mname, fname
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] ~= nil then
mname = opts[offs + 1]:match'^%s*(.*%S)'
end
if mname == nil then error(modulename ..
', ‘invoke_for_each’: No module name was provided', 0) end
if opts[offs + 2] ~= nil then
fname = opts[offs + 2]:match'^%s*(.*%S)'
end
if fname == nil then error(modulename ..
', ‘invoke_for_each’: No function name was provided', 0) end
local iargs = copy_table_reduced(ctx.pipe, 1, offs)
local model = { title = 'Module:' .. mname, args = iargs }
local mfunc, ret, nss, ccs =
require(model.title)[fname], {}, 0, ctx.itersep or ''
if mfunc == nil then error(modulename ..
', ‘invoke_for_each’: The function ‘' .. fname .. '’ does not exist', 0) end
flush_params(ctx, function (key, val)
iargs[1], iargs[2], ret[nss + 1], nss = key, val, ccs, nss + 2
ret[nss] = mfunc(ctx.frame:newChild(model))
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|magic_for_each|parser function|[append 1]|[append
-- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.magic_for_each = function (ctx)
local magic
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] ~= nil then
magic = opts[offs + 1]:match'^%s*(.*%S)'
end
if magic == nil then error(modulename ..
', ‘magic_for_each’: No parser function was provided', 0) end
local ret, nss, ccs, cargs = {}, 0, ctx.itersep or '',
copy_table_reduced(opts, 1, offs - 1)
flush_params(ctx, function (key, val)
cargs[1], cargs[2], ret[nss + 1], nss = key, val, ccs, nss + 2
ret[nss] = ctx.frame:callParserFunction(magic, cargs)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|call_for_each_value|template name|[append 1]|[append
-- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.call_for_each_value = function (ctx)
local tname
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] ~= nil then
tname = opts[offs + 1]:match'^%s*(.*%S)'
end
if tname == nil then error(modulename ..
', ‘call_for_each_value’: No template name was provided', 0) end
local cargs = copy_table_reduced(ctx.pipe, 1, offs)
local model = { title = tname, args = cargs }
local ret, nss, ccs = {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
cargs[1], ret[nss + 1], nss = val, ccs, nss + 2
ret[nss] = ctx.frame:expandTemplate(model)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|invoke_for_each_value|module name|[append 1]|[append
-- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.invoke_for_each_value = function (ctx)
local mname, fname
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] ~= nil then
mname = opts[offs + 1]:match'^%s*(.*%S)'
end
if mname == nil then error(modulename ..
', ‘invoke_for_each_value’: No module name was provided', 0) end
if opts[offs + 2] ~= nil then
fname = opts[offs + 2]:match'^%s*(.*%S)'
end
if fname == nil then error(modulename ..
', ‘invoke_for_each_value’: No function name was provided', 0) end
local iargs = copy_table_reduced(ctx.pipe, 1, offs + 1)
local model = { title = 'Module:' .. mname, args = iargs }
local mfunc, ret, nss, ccs =
require(model.title)[fname], {}, 0, ctx.itersep or ''
if mfunc == nil then error(modulename ..
', ‘invoke_for_each_value’: The function ‘' .. fname .. '’ does not exist', 0) end
flush_params(ctx, function (key, val)
iargs[1], ret[nss + 1], nss = val, ccs, nss + 2
ret[nss] = mfunc(ctx.frame:newChild(model))
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|magic_for_each_value|parser function|[append 1]|
-- [append 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named
-- param n=value n]|[...]
library.magic_for_each_value = function (ctx)
local magic
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] ~= nil then
magic = opts[offs + 1]:match'^%s*(.*%S)'
end
if magic == nil then error(modulename ..
', ‘magic_for_each_value’: No parser function was provided', 0) end
local cargs, ret, nss, ccs =
copy_table_reduced(opts, 1, offs), {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
cargs[1], ret[nss + 1], nss = val, ccs, nss + 2
ret[nss] = ctx.frame:callParserFunction(magic, cargs)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|call_for_each_group|template name|[append 1]|[append
-- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.call_for_each_group = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local tmp
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] ~= nil then
tmp = opts[offs + 1]:match'^%s*(.*%S)'
end
if tmp == nil then error(modulename ..
', ‘call_for_each_group’: No template name was provided', 0) end
local model = { title = tmp }
local bargs, ret, nss, ccs = {}, {}, 0, ctx.itersep or ''
for key, val in pairs(opts) do
if type(key) ~= 'number' then bargs[key] = val
elseif key > offs then bargs[key - offs - 1] = val
elseif key < 1 then bargs[key - 1] = val end
end
ctx.params = make_groups(ctx.params)
flush_params(ctx, function (gid, group)
for key, val in pairs(bargs) do group[key] = val end
group[0], model.args, ret[nss + 1], nss = gid, group, ccs,
nss + 2
ret[nss] = ctx.frame:expandTemplate(model)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
--[[ First-position-only modifiers ]]--
---------------------------------------
-- Syntax: #invoke:params|new|pipe to
static_iface.new = function (child_frame)
local ctx = context_new(child_frame, 'new')
ctx.params = {}
main_loop(ctx, context_iterate(ctx, 2))
return ctx.text
end
--[[ First-position-only functions ]]--
---------------------------------------
-- Syntax: #invoke:params|self
static_iface.self = function (child_frame)
return child_frame:getParent():getTitle()
end
--[[ Public metatable of functions ]]--
---------------------------------------
return setmetatable({}, {
__index = function (_, query)
local fname = query:match'^%s*(.*%S)'
if fname == nil then error(modulename ..
': You must specify a function to call', 0) end
local func = static_iface[fname]
if func ~= nil then return func end
func = library[fname]
if func == nil then error(modulename ..
': The function ‘' .. fname .. '’ does not exist', 0) end
return function (child_frame)
local ctx = context_new(child_frame, fname)
ctx.params = copy_or_ref_table(ctx.oparams,
refparams[fname])
main_loop(ctx, func)
return ctx.text
end
end
})
jnrp2hde108asrud4ch6fuc8nkppvn4
ပထဝီဝင်
0
6178
21895
2026-10-10T14:09:12Z
Retkhaberi
224
Created page with "{{cleanup|date=23 Jul 2021}} [[File:World map 2004 CIA large 1.7m whitespace removed.jpg|thumb|ကမ္ဘာ့မြီပုံ]] '''ပထဝီဝင်''' ဆိုစွာမာ ကမ္ဘာမြေ နန့်တကွသော အစိတ်အပိုင်းများ၊ ဆက်စပ် မှီတင်းသောအရာများ နန့် သဘာဝ ပတ်ဝန်းကျင်ရို့ကို လိလာသော ဘာ..."
21895
wikitext
text/x-wiki
{{cleanup|date=23 Jul 2021}}
[[File:World map 2004 CIA large 1.7m whitespace removed.jpg|thumb|ကမ္ဘာ့မြီပုံ]]
'''ပထဝီဝင်''' ဆိုစွာမာ ကမ္ဘာမြေ နန့်တကွသော အစိတ်အပိုင်းများ၊ ဆက်စပ် မှီတင်းသောအရာများ နန့် သဘာဝ ပတ်ဝန်းကျင်ရို့ကို လိလာသော ဘာသာရပ်တခုဖြစ်တေ။
ကမ္ဘာမြေ၏ အစိတ်အပိုင်း (ရူပ ပထဝီဝင်) ဆိုရာမာ တိုက်ကြီးများ၊ [[ပင်လယ်]]၊ [[သမုဒ္ဒရာ]]၊ [[မြစ်]]၊ [[ချောင်း]]များ နန့် [[တောင်]]များ စသည်ရို့ကို ဆိုလိုရေ။ ဆက်စပ်မှီတင်းရေ အရာတိမာ သက်ဟိများ ဖြစ်တေ [[လူ]] [[တိရစ္ဆာန်]]များ [[အပင်]] အစဟိစွာတိကို ဆိုလိုရား၊ သဘာဝပတ်ဝန်းကျင် ဆိုရာမာ [[မိုးလီဝသ]]၊ [[လီမုန်တိုင်း]]များ၊ [[ဖြားရီ]]၊ [[ငလျင်]] အစဟိရေ [[သဘာဝဖီးအန္တရာယ်]] အကြောင်းအရာများ ပါဝင်ရေ။
ပထဝီဝင်ဘာသာရပ် ပညာသျှင် တဦးစွာပတ်ဝန်းကျင်ဟိ အရာများ၊ အကြောင်းအရာများ နန့် ပတ်သက်ပြီးကေ ဇာပိုင် စတင်ဖြစ်ပေါ်လဲ၊ ဇာပိုင် ဆက်ပနာ ပြောင်းလဲ ဖြစ်ပေါ်လဲ ရို့ကို ရက်ပြတ် လိလာသုံးသပ်ရေ။
ပထဝီဝင်ဘာသာရပ်ရေ သဘာဝသိပ္ပံ ဘာသာရပ် (Ecology)၊ နန့် လိလာမှုနယ်ပယ် တူညီမှုတိ ဟိကေလေ့ မတူ ကွဲပြားခြားနားရေ။
သဘာဝသိပ္ပံပညာသျှင်တိက အနာဂတ် ဖြစ်ရပ်တိအပေါ် ခန့်မှန်း တွက်ချက်မှုတိ ပြုနီချိန်ခါ ပထဝီဝင်ပညာသျှင်တိက ဇာပိုင် စတင်ကာ ဇာပိုင် ပြောင်းလဲဖြစ်ပေါ်လှာကြောင်းကို ဖြီယှင်းနိုင်ဖို့ စူးစမ်းရှာဖွီကတ်တေ။ သဘာဝ သိပ္ပံပညာသျှင်များစွာလေ့ ယင်းရို့၏ ခန့်မှန်း တွက်ချက်မှုတိအတွက် ပထဝီဝင် ပညာသျှင်တိကဲ့သို့ လိလာကတ်ရရေ။ ပထဝီဝင် (Geography) စွာဂရိဘာသာစကား (gêeo= Earth) + (graphein = to write) မှ ဆင်းသက်လာရေ စကားဖြစ်တေ။ မြန်မာမှု ပြုထားရေ ပထဝီဝင်ဆိုစွာမာ (ပထဝီ(ပါဠိ) = မြေ တနည်း ကမ္ဘာ) + (ဝင်= ဝံသ(ပါဠိ)=အကြောင်းအရာ) ဆိုရေ စကားမှ ဆင်းသက်ရေ။
ပထဝီဝင်ဆိုစွာမှာ ကမ္ဘာ့မြီမျက်နှာပြင်အကြောင်းကို အထူးဂရုပြုလို့ လိလာရေ သိပ္ပံပညာဖြစ်တေ။ ကမ္ဘာ မျက်နှာပြင်အကြောင်းကို လိလာရာမာ ပထဝီပညာသျှင်စွာ
ကမ္ဘာပေါ်ဟိ အရပ်ဒေသ တခုနန့်တခု ကွဲပြားခြားနားပုံတိကို စူးစမ်းရှာဖွီလို့၊ အကျိုးအကြောင်းနန့် ရှင်းလင်းဖော်ပြရေ။ ဒေကမ္ဘာ့ မျက်နှာပြင်ကို ကြည့်ရှုရာမာ မြီပြင်တခုတည်းကို
ရာမက၊ ယင်းကို တည်ဟိနိန်ရေ ပါးလွှာသော လီထုနန့် ယင်းအောက်မာ တည်ဟိနိန်ရေ ရီထုရို့ကိုပါ
ထည့်သွင်းလို့ ကြည့်ရှုရေ။ ယင်းရေ လီထု၊ မြီထု၊ ရီထုရို့ တွိဆုံရာ ရပ်ဝန်းအတွင်းမာရာ သက်ဟိသက်မဲ့ရို့ “ ကျွန်းကိုင်းမှီ ကိုင်းကျွန်းမှီ ” ဆိုရေပိုင်၊ တခုနန့်တခု အမှီပြု
ဗျာယ် ဆက်သွယ်ကာ တည်ဟိနိကတ်တေ။ ဧချင့်ပိုင် ပုံစံ အမျိုးမျိုးနန့် ပေါင်းစပ် တည်ဟိနီကတ်ခြင်းကြောင့်လည်း
ကမ္ဘာမျက်နှာပြင်မာ မြီပြင်လက္ခဏာ အမျိုးမျိုး ဖြစ်ပေါ်လှာကတ်ခြင်း ဖြစ်တေ။ ခေတ်သစ်ပထဝီဝင်၏ အဓိက ရည်ရွယ်
ချက်မာ ကမ္ဘာ့မျက်နှာပြင် တစိတ်တဒေသ (တနည်း)
တခုလုံးမာလည်းကောင်း ဖြစ်ပေါ်တည်ဟိနိန်ရေ အကြောင်း
ခြင်းရာ အမျိုးမျိုးရို့ကို စုပေါင်း လိလာဖို့ ဖြစ်တေ။
ယေဇူးနန့် ပထဝီဝင်ရေ ကမ္ဘာပေါ်ဟိ အရပ်ဒေအသီးသီးမာ
ဇာပိုင် အသွင်အပြင်ဟိရေ၊ အရပ်ဒေသ တခုနန့်တခု
ဇာပိုင်ခြားနားရေ။ တနည်း ဆင်တူစွာ၊ အဇာ
ကြောင့် ဧချင့်ပိုင် ဖြစ်ကတ်ရရေ အစဟိစွာရို့ကို လိလာ
ရေ။
ကမ္ဘာပေါ် သက်ဟိသက်မဲ့ရို့၏ တခုနန့်တခု
ဆက်သွယ်ဗျာယ် တည်ဟိနီကတ်တေ။ ပုံစံပြရကေ ငါးစွာ
သက်ဟိသတ္တဝါ ဖြစ်ကေလေ့၊ အသက်မဟိရေ ရီမာရာ
တည်နီနှိုင်ရေ။ ယင်းအတူ အသက် ဟိရေ အပင်စွာ
အသက်မဟိရေ မြီဆီလွှာမာရာ ကြီးပွားရှင်သန်နှိုင်ရေ။
ငါးကို ရီမှ ထုတ်ယူ လိုက်ကေကေလည်းကောင်း၊ အပင်ကို မြေမှ
ထုတ်ယူလိုက်ကေလည်းကောင်း မကြာခင် သီကြီပျက်စီးလားလိမ့်
မေ။ ဒေအကြောင်းကို ထောက်ရှုခြင်းနန့် သက်မဲ့ရို့စွာ
သက်ဟိရို့အတွက် များစွာအရေးကြီးကြောင်းကို သိဟိရရေ။
သဘာဝပထဝီစွာ လူနန့်သက်ဟိသတ္တဝါရို့၏ နီထိုင်
စားသောက်ရီးကို များစွာ ပြုပျင် ဖန်တီးပီးနှိုင်ရေ။
လူနန့်သက်ဟိသတ္တဝါရို့ကလည်း ကိုယ်ရို့ကိုယ်ကို သဘာဝ
ပတ်ဝန်းကျင်အခြီအနီတိနန့် ကိုက်ညီယောင် ပြုပျင်လို့
နီထိုင်လုပ်ကိုင် စားသောက်လာကတ်တေ။ ယင်းအတွက်
ပထဝီဝင်ကို လိလာရာမာ သဘာဝပထဝီနန့် သက်ဟိရို့၏
အကြောင်းကိုရာမက၊ ယင်းရို့ တခုနန့်တခု အပြန်အလှန်
ဆက်စပ် နီပုံကိုလေ့ လိလာရရေ။ သက်ဟိရို့စွာ
သဘာဝပတ်ဝန်းကျင်အခြီအနီ၏ ပြုပျင်ဖန်တီးမှုကြောင့်
ပြောင်းလဲလှာကတ်ရရေ။ ထိုနည်းတတူ သဘာဝပတ်ဝန်းကျင်
အခြီအနီရို့စွာလည်း လူ၊ တိရစ္ဆာန်၊ အပင်ရို့၏
ပြုပျင်မှုကြောင့် ပြောင်းလဲလာကတ်တေ။
ရှီးအခါက သက်ဟိရို့စွာ သဘာဝပထဝီ၏ ပြုပျင်မှု
အတိုင်း လိုက်နာခကတ်တေ။ ပုံစံအားဖြင့် ရီခဲခေတ်အတွင်းမာ
ဝင်ရိုးစွန်းအရပ်မှ ဆင်းသက်လာရေ ရီခဲပြင်ကြီးတိ၏
ဒဏ်ကြောင့် နီရာ မကန်မဝှန်မာ သက်ဟိပေါင်းများစွာ
ကွယ်ပျောက်ကုန်ကတ်တေရာမက၊ လူနန့် တိရစ္ဆာန်များစွာ
ရို့စွာ ပူနွီးရေ အီကွေတာဘက်ဟိ အရပ်ရို့သို့
စုရုံးခိုလှုံခကတ်ရရေ။ ယင်းအပြင် ရာသီဥတုပြောင်းလဲမှုကြောင့်
လည်း သက်ဟိများ သီကြီပျက်စီးကတ်ရလီရေ။ ပုံစံအားဖြင့်
ရာသီဥတု ခြောက်သွိလာခြင်းကြောင့် မြောက်အမေရိကတိုက်ဟိ
သက်ဟိများ မကန်မဝှန်ပျက်စီးခကတ်ရရေ။ နိုင်းမြစ်ဝှမ်းနန့်
အိုးအေးစစ် အရပ်ပိုင် ရီကို အလွယ်ချေ ရနှိုင်ရေ
နီရာတိသို့ ပြောင်းရွိနီနှိုင်ရေ လူနန့် တိရစ္ဆာန်များ
လောက်ရာ အသက်ဖီးမှ လွတ်မြောက်ခကတ်တေ။
မပြောင်းရွိနှိုင်ရေ အပင်တိနန့် အယင့်ယင် မဗြီးလွှား
နှိုင်ရေ သတ္တဝါများစွာ ကမ္ဘာ့အခြီအနီအယင့်ယင်
ပြောင်းလဲတိုင်း ပျက်စီးကတ်ရရေ။
အသိပညာ တိုးပွားလို့ ယိုင်ကျေးလာရေအခါများမာပင်လျှင်
လူရို့စွာသဘာဝ၏ ပြုပျင်စီမံမှုကို များစွာခံနီကတ်ရသိမ့်
ရေ။ သဘာဝအကြောင်းကို စိကေချေ သိနားလည်ပနာ
ထိန်းကြပ်လာနှိုင်ရေအခါကျမှ လူစွာ ကိုယ်ရို့
ကိုယ်ကို ပတ်ဝန်းကျင်အခြီအနီတိနန့် ဆီလျော်အောင်
ပြုပျင်လို့ နီထိုင်လာတတ်ကတ်တေ။ အီဂျစ်လူမျိုးရို့စွာ
ခြောက်သွိရေ လယ်ယာများမာ စိုက်ပျိုးလုပ်ကိုင်နိုင်ဖို့
အတွက် နိုင်းမြစ်မှ ရီကို ရီမြောင်းတိနန့် သွယ်ယူပနာ
အသုံးပြုခကတ်တေ။ ဒေပိုင်ဆိုကေ လူရို့စွာကိုယ်ရို့ကိုယ်ကို
သဘာဝပတ်ဝန်းကျင်နန့် ဆီလျော်အောင် ပြုပျင်လို့ နီထိုင်
ကတ်ရအတွက်နန့် ကျွန်ုပ်ရို့စွာ သဘာဝပထဝီအကြောင်းကို
မသိဟိပါက၊ လူရို့၏ နီထိုင် လုပ်ကိုင်စားသောက်ကတ်ပုံ၊
တနီရာမှ တစ်နီရာသို့ ပြောင်းရွိကတ်ပုံ၊ တဦးနန့် တဦး
စစ်ဖြစ်ကတ်ပုံ၊ မိတ်ဖွဲ့ကတ်ပုံမှအစ ယင်းရို့၏ ယိုင်ကျေးမှုနန့်
လက်မှုစက်မှု လုပ်ငန်းများ တိုးတက်ဖြစ်ထွန်းလာကတ်ပုံတိကို
သိနားလည်ဖို့ ခဲယဉ်းလိမ့်မေ။
ကျွန်ုပ်ရို့စွာ ပထဝီကိုသိကေ တခုသောဒေသမာ
တခုသော ကာလအပိုင်းအရာအထဲ လူရို့ ဇာပိုင်
နီထိုင် လုပ်ကိုင်စားသောက်ကတ်တေ။ စီမံအုပ်ချုပ်ကတ်တေ။
စသည်ရို့ကို လှောက်မှန်းကြည့်နှိုင်ကတ် လီရေ။ ပုံစံအားဖြင့်
နိုင်းမြစ်ဝှမ်းပိုင် ကျယ်ပြန့်သော ရွင့်ပြင်ပနာ သူပုန်များ
ခိုအောင်းရန် နီရာမဟိ ခြင်းကြောင့် အယင့်ယင် ရွှိပြောင်း
လားလာနှိုင်ရေ စစ်တပ်စိကေချေဖြင့်ပင် အလွယ်ချေ
ထိန်းသိမ်း စောင့်ယှောက်နှိုင်ဖို့ဖြစ်ရာ ထိုဒေသမျိုးမာ
အာဏာသျှင်စနစ်ဖြင့် အုပ်ချုပ်ရေ အစိုးရမျိုး ပေါ်ပေါက်
ထွန်းကားနှိုင်ကြောင်း ခန့်မှန်းကြည့်နိုင်လီရေ။ ထိုနည်းတူ
စွာပင် တောတောင်ထူထပ်တေ ဂရိနိုင်ငံ၊ စကော့တလန်ပြည်၊
အာဖဂနိစတန်နိုင်ငံ အစဟိစွာရို့မာ နီထိုင်ကတ်တေ ရှီးကျရေ
တောင်ပေါ်သားတိအဖို့ လွတ်လပ်စွာ နီထိုင်လိုရေ
စိတ်ဓာတ်များ တဖွားဖွား ပေါ်ပေါက်ပွားများလာရန်
အခွင့်ကောင်း ရဟိခကတ် မည်ကိုလေ့ ခန့်မှန်းကြည့်နိုင်ပေ
ရေ။
ဒေအကြောင်းတိကို ထောက်ပြီးကေ ပထဝီဝင်ရေ
လူရို့၏စိတ်ဓာတ်ကို ပြုပျင်ပီးရေလို့ကား တထစ်ကျ
မယူဆထိုက်ပါ၊၊ အကြောင်းကတော့ခါ၊ ဇာနီရာမာမဆို
အာဏာသျှင်စံနစ်ကို မုန်းတီးရေ စိတ်ဓာတ်များ ပေါ်ပေါက်
လာနှိုင်တေအတွက် ဖြစ်လီရေ။ ယေကေလေ့ ရှေးနှစ်ပေါင်း
များစွာကမူ တောင်တန်းများစွာ တောင်ပေါ်သားရို့အား
လွတ်လပ်စွာနန့် ဖြတ်လတ်စွာ နီထိုင်နှိုင်ယောင် ဖန်တီးပီးခ
ကတ်လီရေ။
ဂုချိန်ခါမူကား သဘာဝပတ်ဝန်းကျင် အခြီအနီရို့စွာ
လူရို့၏ နီထိုင်လုပ်ကိုင်မှုကို ရှိးအခါ ကလောက် ပြုပျင်
မပီးနှိုင်ကတ်တော့ချေ။ အစိုင်အလာအားဖြင့် သဘာဝ
အခြီအနီရို့စွာ ဆိပ်ခုံ တည်နီရာတိကို သတ်မှတ်
ပီးဗလင့်ရေ။ ယေကေလေ့ ဂုခေတ်မာ လူရို့စွာလီယာဉ်
ဆိပ်တိကို ကိုယ်ရို့ အလိုဟိရေနီရာများမာ ဆောက်လုပ်နှိုင်ခ
ကတ်ယာ။ ခြောက်သွိရေ သဲကန္တာရအရပ်များမာပင်လျှင်
ရီသွင်းယူပနာ စိုက်ပျိုးလုပ်ကိုင်နှိုင်ခကတ်ယာ။ ရာသီဥတု
ကောင်းမွန်သောဒေသများမာ တကယ်လို့ မြီဆီလွှာ မကောင်း
ပါက ကောင်းယောင် ပြုပျင်ပီးတတ်ကတ်ပျာ။ သဘာဝပတ်ဝန်း
ကျင်နန့် လူရို့၏ နီထိုင်လုပ်ကိုင် စားသောက်မှုရို့စွာ
အယင်ကပိုင်ပင် တခုနန့်တခုဆက်လက်ပြီးကေ ဆက်စပ်တည်ဟိ
နီကတ်ကေ့လည်းသော့၊ တခေါက်တခါက သဘာဝတရား၏
ပြုပျင်မှုကို တသွေမတိမ်းလိုက်နာခကတ်ရရေ လူရို့စွာ
အသိပညာတိုးပွားလာရေနန့်တတူ၊ သဘာဝပတ်ဝန်းကျင်ကို
တဆတ်ဆတ် စိုးမိုးပြုပျင်လို့ နီထိုင်လာနှိုင်ခကတ်လီရေ။
ဧချင့်ပိုင် လူရို့က သဘာဝပတ်ဝန်းကျင်ကို များစွာ
ပြုပျင် ပြောင်းလဲလာနှိုင်ခခြင်းကြောင့်လည်း၊ ပထဝီဝင်ရေ
လူရို့အဖို့ အယင်ကလောက် အရီးမကြီးတော့ဟုထင်မြင်လာကြ
လီရေ။ သဘာဝတရားကို ပြုပျင်နှိုင်ရေ လူရို့၏
စွမ်းရည်ကို ချီးကျူးထိုက်ပါ၏။ ယေကေလေ့ ငလျင်လှုပ်
ခြင်း၊ နဂါးတောင် ပေါက်ကွဲခြင်း အစဟိစွာရို့စွာ နှစ်ပေါင်း
များစွာက တည်ဆောက်လာခရေ အိုးအိမ်တိုက်စွာတိ၊
လုပ်ငန်းဆောင်စွာတိနန့်တကွ လူ့အသက်ပေါင်း အများ
အပြားကိုပင်လျှင် တနားချေနန့် ပျက်စီးစီနိုင်လီရေ။ ယင်းအပြင်
ခြောက်သွိသော ကန္တာရအရပ်၊ အလွန်ဧမြသော တန်ဒြာအရပ်၊
ပူအိုက်စွတ်သော အီကွေတာ သစ်တော အရပ်ရို့မာ လူရို့
စွာသဘာဝအခြီအနီကို ပြုပျင်လို့ နီထိုင်နှိုင်ကတ်ရေလို့
ဆိုကေလည်း၊ လေမဟိရေ လဗိမာန်မာမူကား တာရှည်
နီနှိုင်မည် မဟုတ်ပါ။ ထိုကြောင့် ပတ်ဝန်းကျင် အခြီအနီ
တိကို လူရို့စွာဇာလောက်လောက်ပင် ပြုပျင်ပြောင်းလဲနှိုင်ကတ်
သည်ဆိုစီကာမူ၊ ပထဝီဝင်ရေ လူ့လုပ်ငန်းဆောင်စွာတိကို
အစိုင် ထာဝရ သတ်မှတ်ပီးနေပေလိမ့်ဦးမည် ဖြစ်လီရေ။
===ပထဝီဝင် ဗဟုသုတ တိုးပွားလှာပုံ===
လူရို့ အရပ်တပါးသို့ စတင်ခရီးထွက်ချိန်မှ စပြီးကေ၊
ပထဝီဝင် ဗဟုသုတ တိုးပွားပါလတ်တေ။ ကမ်းခြီနံဘေးမာ
နီထိုင်သော လူရိုင်းရို့စွာ တောင်ပေါ်အရပ်သို့ လားရောက်
လို့၊ တောင်ပေါ်မုဆိုးများ ပါးက သားရီတိကို ယင်းရို့
ယူဆောင်လားသော ဆားတိနန့် ဖခကတ်တေ။
ဧချင့်ပိုင် လားရောက် လည်ပတ်ခြင်းနန့်၊ ကိုယ်ရို့နန့် နီပုံ
ထိုင်ပုံ စရိုက် သဘာဝချင်း မတူသော သူတိ၏အကြောင်းကို
သိဟိလာကတ်တေ။ ဒေနည်းနန့် လူရို့၏ ပထဝီဝင် ဗဟုသုတ
တဆတ်ဆတ် တိုးပွားလာခလှေးရေ။
ဂရိလူမျိုးရို့စွာ ပထဝီဝင်ကို ပထမဆုံး စတင်လိလာ
သူတိ ဖြစ်ကတ်တေ။ ကိုယ်ရို့နီထိုင်သော တိုင်းပြည်နံဘေးဟိ
ပင်လယ်ကမ်းရိုးတန်းတိကို သိဟိလို့၊ မြီပုံတိနန့် မှတ်သားခ
ကတ်တေ။ မြေထဲပင်လယ်ကို ရွက်လှီကြီးတိနန့် ဖြတ်သန်းလို့၊
အာဖရိကတိုက် အတွင်းကို ကုန်းလမ်းခရီးဖြင့် ဝင်ရောက်ခ
ကတ်တေ။ ဂရိ ပထဝီပညာသျှင် အာရတိုးစသနီးဆိုသူက ကမ္ဘာ
စွာအဝန်းမိုင် ၂၅ဝဝဝဝ ဟိရေဟု ဘီစီ ၂၀ဝ လောက်က
ပင် တွက်ချက်တင်ပြခရေ။ ထိုဂရိလူမျိုးရို့စွာ အယ်လက်
ဇန္ဒာဘုရင်ကြီးလက်ထက်မာ အိန္ဒိယမြောက်ပိုင်း အိန္ဒုလွင်ပြင်
သို့ပင် ရောက်ဟိခကတ်လီရေ။ အီဂျစ်လူမျိုးနန့် ဖီနီရှန် လူမျိုး
ရို့စွာ ဂရိလူမျိုးရို့ထက်အလျင် ကုန်းကြောင်း၊ ရေလမ်းခရီးဖြင့်
နယ်ချဲ့ခကတ်တေ မှန်၏။ ယေကေလေ့ ဂရိလူမျိုးရို့ကသာ
လူအများ၏ နီထိုင်လုပ်ကိုင် စားသောက်မှု ကွဲပြားခြားနား
ပုံကို သိလိုကတ်တေကြောင့်၊ ကိုယ်ရို့ တွိမြင်သမျှကို ရီးယူ
မှတ်သားခကတ်တေ။ ဒေအချက်ကြောင့်ပင် ထိုဂရိလူမျိုးရို့ကို
ပထမဆုံး ပထဝီပညာသျှင်တိဟု ကျနော်ရို့ ခေါ်ဝေါ်ကတ်ခြင်း
ဖြစ်တေ။ ရောမလူမျိုးရို့စွာ မြီပုံကို အများဆုံး စတင်
အသုံးပြုကြသူတိ ဖြစ်တေ။ ယင်းရို့စွာ ပင်လယ်နန့်
မြို့တိ၏ အကွာအဝီးကို တိုင်းတာပြီးကေ မြီပုံမာ တိကျ
မှန်ကန်လို့ ထည့်သွင်းပီးခကတ်လီရေ။
ဂရိလူမျိုး ပထဝီပညာသျှင် စတြားဗိုး (၆၄ ဘီစီ-၂၀ အေဒီ)
ရီးသားခရေ စာမူအားလုံးစွာထိုအချိန် အခါက သိဟိခ
သော ကမ္ဘာအကြောင်းကို ဖော်ပြထားခြင်းကြောင့် အစိုးရ
အရာဟိတိ၊ စစ်သီနာကောင်ပတိတိအတွက် များစွာ အသုံးဝင်လေ
ရေ။ တော်လမီ (၁၂၇-၁၅၁ အေဒီ) စွာဂရိပထဝီဝင်
ပညာသျှင်တိ စုပေါင်း ရီးသားခရေ။ မြီပုံတိကိုလည်း
လတ္တီတွဒ်၊ လောင်ဂျီတွဒ် မျှိုင်းတိနန့် ရီးဆွဲနိုင်ဖို့
အားထုတ်ခရေ။ ပထဝီဝင်ကိုလိလာရာမာ တကမ္ဘာလုံးကို
ကေလည်းကောင်း၊ တစိတ်တဒေသကိုကေလည်းကောင်း၊ ဒေသတခုခုကို
ကေလည်းကောင်း ခွဲခြားပနာ လိလာနှိုင်ကြောင်းကို တော်လမီက စတင်
ဖော်ပြခရေ။
ဧချင့်ပိုင် ဂရိနန့်ရောမလူမျိုးရို့ စတင်ရှာဖွီစုဆောင်းခ
ရေ ပထဝီဝင် ဗဟုသုတများစွာ အလယ်ခေတ်ဦးပိုင်း
လောက်မာ များစွာကွယ်ပျောက်ဆုံးရှုံးခကတ်တေ။ ထိုအချိန်
အခါမာ အာရေဗျနန့် အာဖရိက မြောက်ပိုင်းဟိ အာရပ်လူမျိုး
ရို့ကရာ ပထဝီဝင်ကို အတော်အသင့် လိလာခကတ်တေ။
အာရပ် လူမျိုး ရို့စွာ အိန္ဒိယနိုင်ငံ၊ တရုတ်နိုင်ငံ၊ အာဖရိက
အရှိ ကမ်းခြီအရပ်တိကို ရောက်ယောင် ကူးသန်းရောင်းဝယ်
ခကတ်တေအတွက် ၁၀ ရာစုနှစ် မရောက်ခင်ကပင် အိန္ဒိယ
သမုဒ္ဒရာနန့် အာဖရိက အထဲပိုင်းအကြောင်းတိကို အတော်
အတန် သိဟိခကတ်တေ။ ကမ္ဘာလုံးစွာအကြောင်းကို ဂရိ
လူမျိုးရို့ နည်းတူ သိဟိခကတ်တေ။
အာရပ် ပထဝီပညာသျှင်ရို့စွာဂရိနန့် ရောမလူမျိုးများ
ရီးသားခရေ ပထဝီဝင်ကို ဆက်ပနာ လိလာပြီးကေ၊
ကိုယ်ရို့ ရဟိထားရေ ဗဟုသုတတိနန့် ပေါင်းစပ် လိလာ
ကတ်လီရေ။ သဘာဝ ပထဝီဝင်နန့် သမိုင်းပထဝီဝင်ကို
အထူးဂရုပြုလို့ လိလာကေလေ့ မြီပုံ ဆွဲအတတ်ကိုမူ
မတတ်ကျွမ်းနှိုင်ကတ်ပါ၊၊
ထိုအချိန်အခါမှစပြီးကေ ဥရောပအနောက်ပိုင်းသားတိ
တဆတ်ဆတ် ခရီးထွက်ခကတ်တေ။ တချို့စွာ ခရစ်တော်
ဖွားမြင်ရာ ပါလက်စတိုင်းပြည်သို့ လားရောက်ပြီးကေ ကိုယ့်
ရို့၏ ခရီးစိုင်ကို မြီပုံတိနန့် မှတ်သားထားခကတ်တေ။
၁၂၇၁ ခုနှစ်မာ မာကိုပိုလိုစွာ ကသေးခေါ် တရုတ်ပြည်သို့
ကုန်းလမ်းခရီးဖြင့် ရောက်ဟိခရေ။ မာကိုပိုလိုအကြောင်း
ရီးသားထားရေ စာအုပ်မာ မာကိုပိုလို၏ မှတ်သားလောက်
သော စွန့်စားခန်းတိကို အကျိုင်းသားမိတ်ဆွီတဦးက
ရီးသားဖော်ပြထားလီရေ။ ဒေစာအုပ်မာ ပါဟိရေ
အကြောင်းအရာ မကန်မဝှန်စွာပထဝီဝင်အကြောင်းများ
ဖြစ်ခြင်းကြောင့်၊ ယင်းကို ပထဝီဝင် စာအုပ်ဟု ခေါ်ဆိုထိုက်
ရေ။
၁၄ ရာစုနှစ်သို့ ရောက်ထိအောင်အောင်ပင် ဥရောပ
တိုက်သားရို့၏ ပထဝီဝင် ဗဟုသုတစွာအလွန်နည်းသိမ့်
ရေ။ ထိုအချိန်အခါအထိ ကမ္ဘာ့ရေမျက်နှာပြင်၏
၇ ရာခိုင်နှုန်းလောက်ကိုရာ သိဟိကတ်သိရေ။ ၁၄
ရာစုနှစ်နန့် ၁၅ ရာစုနှစ်လောက်မာ ပေါ်တူဂီနန့် စပိန်
လူမျိုးရို့စွာ သမုဒ္ဒရာကြီးတိကို စတင်ပနာ ဖြတ်သန်း
လှည့်လည်ခကတ်တေ။ ဗက်စကိုဒါဂါးမစွာ၁၄၈၉ ခုနှစ်မာ
အာဖရိကတိုက်ကို ပတ်လို့ အိန္ဒိယပြည်သို့ရောက်ဟိခရေ။
ကိုလံဘတ်စွာအမေရိကတိုက်ကို၁၄၉၂ ခုနှစ်မာ
စတင်တွိဟိလီရေ။
ထိုသူရို့ နောက်မာ အိန်းဂလိချ်၊ ဒပ်ချ်နန့် ပြင်သစ်လူမျိုး
ရို့စွာ ပင်လယ်ခရီးဖြင့် စတင်နယ်ချဲ့လာခကတ်တေ။
ပေါ်တူဂီလူမျိုး မာဂျဲလင်ဆိုသူရေ ကမ္ဘာကို ရေလမ်းခရီးဖြင့်
လှည့်ပတ်ရန် ဦးဆောင်ထွက်ခကေလေ့ လမ်းခရီးမာ
အသတ်ခံရရေ။
ကောင်းမကြာခင် အိန်းဂလိချ်လူမျိုး ဆာဖရန်းစစ်ဒရိတ်ရေ ကမ္ဘာကို ရေလမ်းခရီးဖြင့် လှည့်လည်
ခလီရေ။ နှစ်ပေါင်း ၁၀ဝ အတွင်းမာပင် ဥရောပတိုက်သားရို့စွာကျန်ဟိနီသော ကမ္ဘာ့ ရေမျက်နှာပြင် ၉၃ ရာခိုင်နှုန်းကို သိဟိလာကတ်လီရေ။ ဥရောပတိုက်သားရို့စွာအာရေဗျပြည်ကို ၁၉၀ဝ ပြည့်နှစ် ကျော်မှ လုံးလုံးလျားလျား သိဟိလှာပြီးကေ၊ အာဖရိက
အလယ်ပိုင်းကိုမူကား မကြာခင်ကမှ ကောင်းစွာ သိဟိခကတ်လီရေ။ အန္တာတိကတိုက်ကတ်ီး၏ပထဝီဝင်ကို ၁၉၄၀ ပြည့်
နှစ်ကျော်မှ သိဟိခကတ်တေ။ ဒုတိယကမ္ဘာစစ်အတွင်းမာ လူသူအရောက်အပေါက်နည်းသော နီရာတိ၏ ပထဝီဝင်
ဗဟုသုတကိုပိုပြီးကေသိဟိခကတ်တေ။ ဂုချိန်ခါမာမူ တောင်ကြီးများအကြားမာ ကွယ်ပျောက်နိန်ရေ ချိုင့်ဝှမ်းများ၊ လူသူတိနန့်
တကွ ကဂေါင်းဝီးလံသော တောင်ကြီး တောကြီးတိကိုပင် လီယာဉ်ပျံဖြင့် ဓာတ်ပုံရိုက်ယူ ပြီးကေ မြီပုံများပေါ်မာ ထင်ရှားစွာ ပြသနှိုင်ဗျာယ် ဖြစ်ခြင်းကြောင့် ပထဝီပညာသျှင်ရို့စွာကမ္ဘာ့မြီပုံသစ်ကိုပင် ထုတ်လုပ်နှိုင်ခလီဗျာယ်။
ပထဝီဝင်၏ သဘောတရား
၁၈ ရာစုနှစ်နောက်ပိုင်းသို့ မရောက်မီ ပထဝီဝင်ကို နည်း ၂ နည်းနန့် လိလာခကတ်တေ။ တနည်းမာ တော်လမီ၊
မာကေစွာရို့ ပြုလုပ်ပိုင် ကမ္ဘာ၏ ပုံပန်းသဏ္ဌာန်နန့် အရွယ်ပမာဏကို လိလာခြင်းဖြစ်ပနာ၊ အရာတနည်းမာ
စတြားဗိုး၊ မန်းစစွာရို့ ပြုလုပ်ပိုင် တိုင်းပြည်နန့် အရပ် ဒေသတိ၏ မှတ်သား လောက်သော အကြောင်းအရာရို့ကို
လိလာခြင်းဖြစ်တေ။ ပထမလိလာနည်းကို မြီပုံဆွဲ အတတ်လိလာသူ တိက ဆက်ပနာ ကျင့်သုံးခကတ်တေ။
ဒုတိယနည်းမာမူကား ပထဝီဝင်၏ အဓိကလုပ်ငန်းအဖြစ်ဖြင့် ဆက်ပနာတည်ဟိလာခလှေးရေ။
ဂျာမနီပြည်မာ ၁၈ ရာစုနှစ်နောက်ပိုင်းလောက်မာ ပေါ်ပေါက်ခရေ ဟမ်းဗို့နန့် ရစ်စွာရို့ လက်ထက်မှစပြီးကေ
ပထဝီဝင်အခြီခံသဘောတရားမာ လုံးဝပြောင်းလဲလာခ လီရေ။ ထိုပညာသျှင် ၂ ဦး လက်ထက်မှစပြီးကေ ထွန်းကား
ခရေ ပထဝီဝင်၏ အဓိကရည်ရွယ်ချက်မာ သီးသန့်တည်ဟိ နိန်ရေ ဒေသတိ၏ အချင်းအရာများ တခုနန့်တခု
ဆက်စပ်တည်ဟိနီကတ်ပုံ၊ စုပေါင်းဖြစ်ထက်ကြပုံ၊ ကမ္ဘာပေါ်ဟိ ဒေသများ တခုနန့်တခု တူညီကတ်ပုံ၊ ကွဲပြားခြားနားကတ်ပုံ
စသည်ရို့ကို အကျိုးအကြောင်းနန့်တကွ သိဟိနားလည်ယောင် လိလာခြင်းဖြစ်တေ။ ထိုအချိန်အခါမှစပြီးကေ ပထဝီဝင်ရေ
ကုလားထိုင်ထက်မာထိုင်ကာ အထင်ဖြင့် လွမ်းဆွေးမှန်းဆလို့ လိလာသောပညာ မဟုတ်တော့ဘဲ၊ ပြင်ပမာ အဂယင့်ဖြစ်ပေါ်
နိန်ရေ အခြင်းအရာရို့ကို ကိုယ်တွိမျက်မြင် ကြည့်ရှုလိလာ
သော ပညာတရပ်အဖြစ်ဖြင့် ထွန်းကားလာခလှေးရေ။
ယင်းပိုင် ကွင်းဆင်းလို့့လာချက်တိကို မြီပုံမာ မှတ်သား
ထည့်သွင်းခြင်းနန့် ပထဝီဝင်ရေ အယင်ကထက် တိကျ
မှန်ကန်ပါလတ်တေ။ ဟမ်းဗို့စွာပထဝီဝင်ကို လိလာရာမာ
တွိဟိရရေ အခြင်းအရာတိကို တခုစီခွဲခြားပနာ စနစ်တကျ
လိလာနည်းဟု ခေါ်ရေ။ ရစ်စွာကမူကား၊ ဒေသတခုမာ
ဖြစ်ပေါ်နိန်ရေ အချင်းအရာ တိကို တသီးအခြားစီ မလေ့
လာဘဲ၊ ယင်းရို့အားနုန်းကိုခြုံလို့ တခုနန့်တခု အပြန်အလှန်
ဆက်စပ်တည်ဟိနီပုံကို လိလာရေ။ ဒေပိုင်နန့် လိလာ
နည်းမျိုးကို ဒေသအလိုက်လိလာနည်းဟု ခေါ်ရေ။ စင်စစ်
အားဖြင့် ထိုပညာသျှင် နှစ်ဦးစွာနှစ်နည်းစလုံးဖြင့်ပင်
လိလာခကတ်ပေ၏။ အထူးအလီးဂရုပြုပုံမာရာ ကွာခြါးကြ
ရေ။ ခေတ်မှီ ပညာသျှင်ရို့ကလေ့ ဧချင့်ပိုင် အကြောင်း
အရာအလိုက် လိလာနည်း၊ ဒေသအလိုက် လိလာနည်းဆိုပနာ
မခွဲခြါးဘဲ၊ ထိုနည်း ၂ မျိုးကို ပေါင်းစပ်လို့ လိလာရန် လိုအပ်
ရေလို့ အသိအမှတ်ပြုကတ်တေ။
၁၉ ရာစုနှစ် အလယ်လောက်မှစပြီးကေကား၊ ပထဝီဝင်ရေ
အရပ်ဒေသတိ၏အကြောင်းကို ဗဟုသုတ အဖြစ်လောက်ရာ
ဖော်ပြရေ ပညာတရပ်အနိန်နန့် မတည်ဟိတော့ဘဲ၊
ဆောင်ရွက်ရန် ရည်မှန်းထားရေ ကိစ္စတခုခုနန့် သက်ဆိုင်
သော အကြောင်းအရာတိကို စံနစ်တကျ ဖွဲ့စည်းလိလာသော
ပညာတရပ် အဖြစ်ဖြင့် ထွန်းကားလာခလှေးရေ။
ပထဝီဝင်ကို လူကြီးတိရာမက ကောင်မချေတိ စိတ်ဝင်စား
စွာဖြင့် လိလာနှိုင်ကတ်တေ။ ဒေအကြောင်းကြောင့်ပင်
ပထဝီကို မူလတန်းကျောင်းတိမှစပြီးကေ တက္ကသိုလ်တိအထိ
ဘာသာတရပ်အဖြစ်ဖြင့် ဆက်ပနာ သင်ကြား လိလာကြ
ခြင်း ဖြစ်တေ။
ပထဝီဝင် အမျိုးမျိုးဟိရေ။ မူလတန်းနန့် မူလတန်းလွန်
ကျောင်းတိမာ သင်ကြားရရေ ပထဝီဝင်ရေ အများ
အားဖြင့် ကမ္ဘာအရပ်ရပ်မာ မြီပြင်လက္ခဏာများ ဇာပိုင်
တည်ဟိကတ်ပုံ၊ လူရို့ ဇာပိုင် နီထိုင် လုပ်ကိုင်စားသောက်
ကတ်ပုံ စသည်ရို့ကို အကျိုးအကြောင်းနန့် လိလာရေ။ ပိုပြီးကေ
အဆင့်အတန်း မြင့်လာရေအခါ ပထဝီဝင်ကို သဘာဝ
ပထဝီဝင်၊ မနုဿ ပထဝီဝင်၊ စီးပွားရီးပထဝီဝင်၊ ဒေသန္တရ
ပထဝီဝင် စသည်အနိန်နန့် ခွဲခြားပနာ အသေးစိတ် လိလာကတ်တေ။
ယေကေလေ့ ယင်းရို့ အားလုံးစွာသဘာဝပထဝီနန့် လူ၊
အပင်၊ တိရစ္ဆာန်ရို့ ဆက်သွယ်တည်ဟိနီကတ်ပုံ၊ တခုနန့်
တခု အားထားမှီခိုနီကတ်ပုံ စသည်ရို့ကို အဓိကထားပနာ
လိလာကတ်တေခြည်းသာ ဖြစ်တေ။
===ပထဝီဝင်၏ အစိတ်အပိုင်းတိ===
ပထဝီဝင်ရေ ကျယ်ဝန်းသော ပညာတရပ်ဖြစ်ပနာ၊
လွယ်ကူစိမ့်သောငှါ အထက်မာ ဖော်ပြခရေအတိုင်း
သဘာဝ ပထဝီဝင်၊ မနုဿပထဝီဝင်စသည်အနိန်နန့် အစိတ်
အပိုင်းများပြုလုပ်ပနာ ခွဲခြါးလိလာကတ်တေ။ ပုံစံအားဖြင့်
သဘာဝပထဝီစွာသက်ဟိ သတ္တဝါရို့အပေါ် ဇာပိုင်
ပြုပျင်နှိုင်ကြောင်းကို အသီအချာကြည့်ရှု စစ်ဆီးခြင်းနန့်
ပထဝီဝင်ကို လိလာကတ်တေ။ ဧချင့်ပိုင် လိလာသော ပထဝီ
ဝင်မျိုးကို သဘာဝ ပထဝီဝင်ဟု ခေါ်ရေ။ တဖန် အပြန်
အလှန်အားဖြင့် သက်ဟိသတ္တဝါတိနန့် ယင်းရို့၏ အပြုအမူ
တိက သဘာဝပထဝီဝင်ကို ဇာပိုင် ပြုပျင်နှိုင်ကြောင်းကို
စူးစမ်းလီ့လာခြင်းဖြင့်လည်း ပထဝီဝင်ကို လိလာကတ်တေ။
ဒေပထဝီဝင်မျိုးကို ဇီဝပထဝီဝင်လို့ ခေါ်ရေ။
===သဘာဝပထဝီဝင်===
သဘာဝပထဝီဝင်ကို လိလာရာမာ တချို့ပညာသျှင်ရို့စွာ
တောင်တန်းကြီး၊ ကုန်းပြင်မြင့်၊ လွင်ပြင် အစဟိရေ ကုန်းမြီ
လက္ခဏာတိကို ဂရုထူလို့ လိလာကတ်တေ။ တချို့ကမူ
သမုဒ္ဒရာကြီးများ၊ တနည်း ရာသီဥတု၊ မိုးလီဝသ အစဟိစွာ
ရို့ကို အသေးစိတ်လို့ လိလာကတ်တေ။ တချို့ကလေ့ ကမ္ဘာ
ပေါ်ဟိ နီရာတိကို အတိအကျမှတ်သားပြနိူင်ရန်လိလာကတ်တေ။
ယင်းရေ အစိတ်အပိုင်းတခုကျစွာ သိပ္ပံပညာရပ်များ
အဖြစ်ဖြင့် သီးသန့်တည်ဟိနီကတ်ခြင်းကြောင့် ယင်းရို့မာလည်း
သီးခြားနာမည်များဟိကတ်တေ။ ဘူမိရုပ်သွင်ပညာရေ ကုန်းမြီ
သဏ္ဌာန်တိကို လိလာရေ ပညာရပ်ဖြစ်တေ။ တနည်း
အားဖြင့် ကမ္ဘာ့မျက်နှာပြင်အကြောင်းကို ဖော်ပြလို့၊ ယင်းရို့
စတင်ဖြစ်ပေါ်လှာကတ်ပုံ၊ ပြောင်းလဲလာခကတ်ပုံ စသည်ရို့ကို
ရှင်းလင်းဖော်ပြသော ပညာရပ်ဖြစ်တေ။ ဒေအကြောင်းတိကို
ပေါက်မြောက်စွာ လိလာနှိုင်ဖို့အတွက် ကမ္ဘာပေါ်ဟိ ကျောက်
တိ၏အနိန်အထားနန့် ဖွဲ့စည်းပုံကိုရာမက၊ မြီမျက်နှာပြင်ကို
ပြုပျင်ပြောင်းလဲစီနှိုင်ရေ ဥတု ခြီဖျက်ခြင်း၊ တိုက်စားခြင်း၊
ရပေါ်ဆီမြီလွှာလှုပ်ရှားခြင်း၊ နဂါးတောင်လှုပ်ရှားခြင်း အစဟိစွာ
ရို့ကိုပါ သိနားလည်ထားရန် လိုအပ်လှလီရေ။ ဒေအချက်
ကြောင့်ပင် ဘူမိရုပ်သွင်ပညာရေ ဘူမိဗေဒနန့် များစွာ
ဆက်စပ်နိန်ရေ။ ဒေပဝါရေ တောင်ကြီးများ မြင့်တက်
လာခကြ ပုံ၊ လေ၊ ရီစီး၊ ရီခဲမြစ် အစဟိစွာရို့၏ တိုက်စား
ခြင်းကြောင့်၊ ထိုတောင်ကြီးများ တဆတ်ဆတ် ယိုးယွင်
ပျက်စီးလားကတ်ရပုံတိကို ဖော်ပြရေ။ ယင်းအပြင် မြင့်မားသော
တောင်များပေါ်မှ တိုက်စားချလိုက်သော တမန်းသားများ နိမ့်သော
အရပ်များမာ အပုံလိုက်ခြင်းနန့် ရွင့်ပြင်များ ဖြစ်ပေါ်လှာကတ်ပုံ၊
ပင်လယ်မားသို့ စီးဝင်သော မြစ်များ ရီးစီး နှေးလှာပြီးကေ
ချောင်းဖျားမှ ယူဆောင်လာခရေ အနည်တိကို မြစ်ဝမာ အပုံလိုက်
ချထားခြင်းကြောင့် မြစ်ဝကျွန်းပေါ်များဖြစ်လှာကတ်ပုံ အစဟိစွာ
ရို့ကိုလည်း ရှင်းလင်းဖော်ပြရေ။ ဧချင့်ပိုင် ကမ္ဘာ့
မျက်နှာပြင်ကို ပြောင်းလဲဖြစ်ပေါ်စီရေ ဖြစ်စိုင်တိကို
လိလာခြင်းစွာ ဘူမိရုပ်သွင်ပညာသျှင်ရို့၏ အဓိက လုပ်ငန်း
ဖြစ်၏။
== ဘာသာရပ်ခွဲတိ==
ပထဝီဝင် ဘာသာရပ်မာ ရူပ ပထဝီဝင် (Physical geography) နန့် လူမှု ပထဝီဝင် (Human geography) ဆိုပနာ ပင်မ ဘာသာရပ်ခွဲ ၂ ခု ခွဲခြားလိလာရေ။
=== ရူပ ပထဝီဝင် ===
{{main|ရူပ ပထဝီဝင်}}
[[ရူပ ပထဝီဝင်]] ဘာသာရပ်ရေ သဘာဝပတ်ဝန်းကျင် ဟိ မြီမျက်နှာသွင်ပြင်၊ ရေဆင်း၊ မြေအမျိုးစား၊ ကျောက်များ၊ ရာသီဥတု စသည်ရို့ကို လိလာသော ဘာသာရပ်ဖြစ်တေ။
=== လူမှု ပထဝီဝင် ===
လူမှု ပထဝီဝင် ဘာသာရပ် လူ နန့် လူ့ပတ်ဝန်းကျင်အကြောင်းကို လိလာရေ။ လူမှု ပထဝီဝင် ကို လိလာရာမာ ဒေသ၊ နိုင်ငံတခု ၏ လူဦးရွီ၊ ယိုင်ကျေးမှု၊ နိုင်ငံရီး၊ စီးပွားရီး … အစ ဟိရေ အကြောင်းအရာတိကို ရာမက မြေအသုံးချမှု၊ စိုက်ပျိုးရီး၊ စက်မှုလုပ်ငန်း အစဟိစွာတိကိုပါ လိလာရေ။
=== မြီပုံများ ===
[[မြီပုံ]]များစွာ ပထဝီဝင် အကြောင်းအရာတိကို များစွာ ဖော်ပြထားနိုင်သဖြင့် ပထဝီဝင် ပညာသျှင်တိစွာမြီပုံ နန့် ဆိုင်ရေ အကြောင်းအရာတိကို နားလည်ရန် လိုအပ်ရေ။ ပထဝီဝင် ပညာသျှင်တိစွာမြီပုံပေါင်းများစွာကို ရီးဆွဲ အသုံးပြုကတ်တေ။
== မှီငြမ်းကိုးကား ==
{{reflist}}
[[Category:ပထဝီဝင်| ]]
[[ကဏ္ဍ:ပင်မ အကြောင်းအရာ ဆောင်းပါးတိ]]
04buiyz0qn9gvjytv4dotgnbi62ir5u
ကမ္ဘာမြီ
0
6179
21896
2026-10-10T14:34:23Z
Retkhaberi
224
Created page with "{{ဆောင်းပါးကောင်း}} {{Infobox planet <!--------------------------------------------------------------------------------------- This infobox has been formatted in the same way as those for other Solar System planets and bodies, so please do not change it without discussion on the talkpage. ----------------------------------------------------------------------------------------> | bgcolour = #c0c0ff | name = ကမ္ဘာဂ..."
21896
wikitext
text/x-wiki
{{ဆောင်းပါးကောင်း}}
{{Infobox planet
<!---------------------------------------------------------------------------------------
This infobox has been formatted in the same way as those for other Solar System
planets and bodies, so please do not change it without discussion on the talkpage.
---------------------------------------------------------------------------------------->
| bgcolour = #c0c0ff
| name = ကမ္ဘာဂြိုဟ်
| symbol = [[File:Earth symbol (small, bold).svg|24px|🜨]]
| image = [[File:The Earth seen from Apollo 17.jpg|300px|border|alt="[[The Blue Marble]]" photograph of Earth, taken by the [[အပိုလို ၁၇|Apollo 17]] lunar mission. The Arabian peninsula, Africa and Madagascar lie in the upper half of the disc, whereas Antarctica is at the bottom.]]
| caption = "အပြာရောင်ပုလဲလုံး" ဟု နာမည်ရရေ ကမ္ဘာဂြိုဟ်အား ၁၉၇၂ ခုနှစ်မာ [[အပိုလို ၁၇]] မှ ရိုက်ကူးခရေ။
| alt_names = <!--{{ublist|style=padding-top:0.1em;|li_style=line-height:1.3em; |{{hlist|ကမ္ဘာမြေ|ကမ္ဘာ}} |{{hlist|အပြာရောင်ဂြိုဟ်|အပြာရောင်ပုလဲလုံး|''Terra''|Gaia}} }}-->
| epoch = [[:en:J2000.0|J2000]]<ref group="n" name="epoch" />
| aphelion = {{longitem|{{convert|152100000|km|abbr=on}}<br/>{{smaller|({{val|1.01673|ul=AU}}) }}}}<ref group="n" name="apsis" />
| perihelion = {{longitem|{{convert|147095000|km|abbr=on}}<br/>{{smaller|({{val|0.9832687|u=AU}}) }}}}<ref group="n" name="apsis" />
| semimajor = {{longitem|{{convert|149598023|km|abbr=on}}<br/>{{smaller|({{val|1.000001018|u=AU}}) <ref name="VSOP87"/>}}}}
| eccentricity = {{val|0.0167086}}<ref name="VSOP87"/>
| period = {{longitem|{{val|365.256363004|u=days}} <ref name="IERS"/><br/>{{smaller|({{val|1.00001742096|u=[[:en:Julian year (astronomy)|yr]]}})}}}}
| avg_speed = {{longitem|{{convert|29.78|km/s|abbr=on}}<ref name="earth_fact_sheet"/><br/>{{smaller|({{convert|107200|km/h|abbr=on}})}}}}
| mean_anomaly = {{val|358.617}}°
| inclination = {{ublist|class=nowrap |{{val|7.155}}° to sun's equator; |1.57869°<ref name="Allen294"/> to invariable plane; |0.00005° to J2000 ecliptic}}
| asc_node = {{val|-11.26064}}°<ref name="earth_fact_sheet"/> to J2000 ecliptic
| arg_peri = {{val|114.20783}}°<ref name="earth_fact_sheet"/>
| satellites =
{{unbulleted list
| [[လကမ္ဘာ|သဘာဝဂြိုဟ်တု ၁ ခု]];
| ၁၃၀၅ ဂြိုဟ်တုများ
}}
| allsatellites = yes
| physical_characteristics = yes
| mean_radius = {{convert|6371.0|km|abbr=on}}<ref name=hbcp2000/>
| equatorial_radius = {{convert|6378.1|km|abbr=on}}<ref name=usno/><ref name="WGS-84"/>
| polar_radius = {{convert|6356.8|km|abbr=on}}<ref name=cazenave_ahrens1995/>
| flattening = {{val|0.0033528}}<ref name=iers/><br/>1/298.257222101 (ETRS89)
| circumference =
{{unbulleted list |class=nowrap
| {{convert|40075.017|km|abbr=on}} {{smaller|(equatorial) <ref name="WGS-84">World Geodetic System (''WGS-84''). [http://earth-info.nga.mil/GandG/wgs84/ Available online] {{Webarchive|url=https://web.archive.org/web/20200311023739/http://earth-info.nga.mil/GandG/wgs84/ |date=11 March 2020 }} from National Geospatial-Intelligence Agency.</ref>}}
| {{convert|40007.86|km|abbr=on}} {{smaller|(meridional) <ref name="WGS-84-2"/><ref name="circ">Earth's circumference is almost exactly 40,000 km because the metre was calibrated on this measurement—more specifically, 1/10-millionth of the distance between the poles and the equator.</ref>}}
}}
| surface_area =
{{unbulleted list |class=nowrap
| {{convert|510065623|km2|mi2|comma=gaps|abbr=on|disp=x| <small>(|)</small>}}<ref name="Pidwirny 2006_8" /><ref name="cia"/><ref group="n" name="surfacecover" />
| {{convert|148940000|km2|mi2|comma=gaps|abbr=on|disp=x| land <small>(|)</small>}}
| {{convert|361132000|km2|mi2|comma=gaps|abbr=on|disp=x| water <small>(|)</small>}}
}}
| volume = [[ကမ္ဘာဒြပ်ထု|{{val|1.08321|e=12|u=km3}}]] ({{val|2.59876|e=11|u=cu mi}})<ref name="earth_fact_sheet"/>
| mass = {{val|5.97237|e=24|u=kg}} ({{val|1.31668|e=25|u=lb}})<br/>{{smaller|({{val|3.0|e=-6|ul=solar mass}})}}
| density = {{convert|5.514|g/cm3|abbr=on}}<ref name="earth_fact_sheet"/>
| surface_grav = {{convert|9.807|m/s2|ft/s2|abbr=on}}<ref name="NIST2008"/><br/>{{smaller|([[ကမ္ဘာ၏ ဒြပ်ဆွဲအား|{{val|1|u=''g''}}]])}}
| moment_of_inertia_factor = 0.3307<ref name="Williams1994"/>
| escape_velocity = {{convert|11.186|km/s|abbr=on}}<ref name="earth_fact_sheet"/>
| sidereal_day = {{longitem|{{val|0.99726968|u=d}}<ref name="Allen296"/><br/>{{smaller|(23h 56m 4.100s)}}}}
| rot_velocity = {{convert|1674.4|km/h|mph|abbr=on}}<ref name="Cox2000"/>
| axial_tilt = 23.4392811°<ref name="IERS"/>
| albedo = {{ublist|class=nowrap |0.367 [[:en:Geometric albedo|geometric]]<ref name="earth_fact_sheet"/> |0.306 [[:en:Bond albedo|Bond]]<ref name="earth_fact_sheet"/>}}
| atmosphere = yes
| temperatures = yes
| temp_name1 = ကယ်လ်ဗင်
| min_temp_1 = ၁၈၄ K<ref name=asu_lowest_temp>{{cite web |url=http://wmo.asu.edu/world-lowest-temperature |title=World: Lowest Temperature |work=WMO Weather and Climate Extremes Archive |publisher=Arizona State University |accessdate=2010-08-07 |archivedate=16 June 2010 |archiveurl=https://web.archive.org/web/20100616025722/http://wmo.asu.edu/world-lowest-temperature }}</ref>
| mean_temp_1 = ၂၈၈ K<ref name=kinver20091210/>
| max_temp_1 = ၃၃၀ K<ref name=asu_highest_temp>{{cite web |url=http://wmo.asu.edu/world-highest-temperature |title=World: Highest Temperature |work=WMO Weather and Climate Extremes Archive |publisher=Arizona State University |accessdate=2010-08-07 |archivedate=4 January 2013 |archiveurl=https://web.archive.org/web/20130104143844/http://wmo.asu.edu/world-highest-temperature }}</ref>
| temp_name2 = ဆဲလ်စီးယပ်စ်
| min_temp_2 = −၈၉.၂ °C
| mean_temp_2 = ၁၅ °C
| max_temp_2 = ၅၆.၇ °C
| temp_name3 = ဖာရင်ဟိုက်
| min_temp_3 = −၁၂၈.၅ °F
| mean_temp_3 = ၅၉ °F
| max_temp_3 = ၁၃၄ °F
| surface_pressure = {{val|101.325|ul=kPa}} (ပင်လယ်ရီမျက်နှာပြင်အမှတ်)
| atmosphere_composition =
{{unbulleted list |class=nowrap
| ၇၈.၀၈% [[နိုက်ထရိုဂျင်]] (N{{raise|0.3em|{{smallsub|2}}}})<ref name="earth_fact_sheet"/> {{smaller|(dry air)}}
| ၂၀.၉၅% [[အောက်ဆီဂျင်]] (O{{raise|0.3em|{{smallsub|2}}}})
| ~ ၁% [[ရီငွိ]] {{smaller|(ရာသီဥတုကိုလိုက်လို့ အပြောင်းအလဲဟိ)}}
| ၀.၉၃၄၀% [[အာဂွန်]]
| ၀.၀၄၁၃% [[ကာဗွန်ဒိုင်အောက်ဆိုဒ်]]<ref name="NOAA">{{cite web |url=https://www.esrl.noaa.gov/gmd/ccgg/trends/gl_trend.html |title=Trends in Atmospheric Carbon Dioxide: Recent Global {{chem2|CO2}} Trend |publisher=National Oceanic and Atmospheric Administration |website=Earth System Research Laboratory |date=19 October 2020 |archive-url=https://web.archive.org/web/20201004010704/https://www.esrl.noaa.gov/gmd/ccgg/trends/gl_trend.html |archive-date=4 October 2020 |url-status=live |accessdate=22 November 2021 |archivedate=26 July 2018 |archiveurl=https://web.archive.org/web/20180726210430/https://www.esrl.noaa.gov/gmd/ccgg/trends/gl_trend.html }}</ref>
| ၀.၀၀၁၈၂% [[နီယွန်]]<ref name="earth_fact_sheet" />
| ၀.၀၀၀၅၂% [[ဟီလီယမ်]]
| ၀.၀၀၀၁၉% [[မီသိန်း]]
| ၀.၀၀၀၁၁% [[ကရစ်ပတွန်]]
| ၀.၀၀၀၀၆% [[ဟိုက်ဒရိုဂျင်]]
}}
| note = no
}}
'''ကမ္ဘာဂြိုဟ်''' ({{lang-en|Earth}}) စွာ [[နဂါးငွီ့တန်း ဂယ်လက်ဆီ|နဂါးငွီ့တန်း ကြယ်စုကြီး]] အထဲ [[နီအဖွဲ့အစည်း]] ဆိုရေ [[ဂြိုဟ်စု]]ဟိ ဗဟိုဒြပ်ထု [[နေ|နီလုံး]] မှ တတိယမြောက် ကွာလှမ်းကာ လှည့်ပတ်ပါဝင်နီရေ [[မြီကျောက်ဂြိုဟ်|တမန်းသားကျောက်သား ဂြိုဟ်]] (terrestrial planet) ဖြစ်တေ။ [[ရေ|ရီထု]]၊ [[လီထု]]ရို့လေ့ ပါဟိပြီးကေ နီမှ အကွာအဝီး မနီးလွန်းမဝီးလွန်း ဖြစ်နီရာမှ [[လူ]]အပါအဝင် [[သက်ဟိ]]များ ဖြစ်ပေါ်ရှင်သန် ထွန်းကားနှိုင်ရေ [[ဂြိုဟ်]]တလုံး ဖြစ်နီ၏။ ကမ္ဘာမာ ဂြိုဟ်ရံလ တစင်းသာ ဟိရေ။ ကမ္ဘာစွာ [[နီ]]ကို ၃၆၅.၂၅၆၄ ရက်မာ တခေါက် လှည့်ပတ်နိန်ပြီးကေ ယင်းကိုပင် တနှစ်လို့ သတ်မှတ်ကတ်တေ။ ရေဒီယိုမက်ထရစ်ရက်စွဲဖြင့် သက်တမ်းဖော်ထုတ်နည်း (Radiometric dating) အရ<ref group="n" name="radiomatric" /> ကမ္ဘာစွာ သက်တမ်းအားဖြင့် နှစ်ပေါင်း ၄.၅၄ [[ဘီလီယံ]] အကြာက ဖွဲ့စည်းခခြင်းဖြစ်တေ။<ref name="USGS1997">{{cite web |date=1997 |title=Age of the Earth |url=http://pubs.usgs.gov/gip/geotime/age.html |publisher=U.S. Geological Survey |accessdate=2006-01-10 |archiveurl=https://web.archive.org/web/20051223072700/http://pubs.usgs.gov/gip/geotime/age.html |archivedate=23 December 2005 <!--DASHBot--> |deadurl=no}}</ref><ref>{{cite journal |last=Dalrymple |first=G. Brent |title=The age of the Earth in the twentieth century: a problem (mostly) solved |journal=Special Publications, Geological Society of London |date=2001 |volume=190 |issue=1 |pages=205–221 |doi=10.1144/GSL.SP.2001.190.01.14 |bibcode=2001GSLSP.190..205D}}</ref><ref>{{cite journal |author=Manhesa, Gérard |author2=Allègre, Claude J. |author3=Dupréa, Bernard |author4=Hamelin, Bruno| last-author-amp= yes |title=Lead isotope study of basic-ultrabasic layered complexes: Speculations about the age of the earth and primitive mantle characteristics |url=https://archive.org/details/sim_earth-and-planetary-science-letters_1980-05_47_3/page/370 |journal=Earth and Planetary Science Letters |date=1980 |volume=47 |issue=3 |pages=370–382 |doi=10.1016/0012-821X(80)90024-2 |bibcode=1980E&PSL..47..370M}}</ref> နိန်ရေ ကမ္ဘာအား ထွန်းလင်းရန် [[အလင်း]]ရောင်နန့် အပူချိန်ကိုပီးရေ။ ယင်းအပူစွမ်းအင်ကြောင့် ကမ္ဘာကြီး၏ အောက်ခရင်းလီထုလွှာမာ ရာသီဥတု (နီပူခြင်း၊ လီထခြင်း၊ မိုးရွာခြင်း၊ နှင်းကျခြင်း၊ မုန်တိုင်းတိုက်ခြင်း) အခြီအနီများ ဖြစ်ပေါ်လာရေ။ ကမ္ဘာမာ [[ရေ]]ပါဝင်မှု ၇၁% နန့်<ref>{{cite web |url=http://www.noaa.gov/ocean.html |author=National Oceanic and Atmospheric Administration |title=Ocean |website=NOAA.gov |accessdate=3 May 2013 |archivedate=24 April 2013 |archiveurl=https://web.archive.org/web/20130424102601/http://www.noaa.gov/ocean.html }}</ref> ကုန်းမြီ ၂၉% လှောက်ဟိရေ။ ကမ္ဘာ၏ ဝင်ရိုးစွန်းဒေသတိကို ရီခဲတိနန့် ဖုံးလွှမ်းထားရေ။ အပူပိုင်းဒေသမာ ဝင်ရိုးစွန်းဒေသထက် နီရောင်ခြည်စွမ်းအင်ကို ပိုပြီးကေရဟိပြီး လီထု၊ သမုဒ္ဒရာရီစီးကြောင်းတိနန့် အပူကို ဖြန့်ဖြူးပီးရေ။ [[မှန်လုံအိမ်ဓာတ်ငွိ]]စွာ ကမ္ဘာ့မျက်နှာပြင်အပူချိန်ကို ထိန်းသိမ်းပီးဖို့ အရေးပါသောအခန်းကဏ္ဍမှ ပါဝင်ပြီးကေဟိရေ။ ဒေသတခု၏ ရာသီဥတုကို ဆုံးဖြတ်ရာမာ လတ္တီကျုကိုရာမက ပင်လယ်ရီမျက်နှာပြင်အမြင့်၊ သမုဒ္ဒရာတိနန့် နီးကပ်မှု အစဟိစွာရို့ကိုပါ အသုံးပြုရေ။ အပူပိုင်း ဆိုင်ကလုန်းများ၊ မိုးကြိုးမုန်တိုင်းများ၊ အပူလှိုင်းဖြတ်ခြင်းအစဟိရေ ပြင်းထန်ရေရာသီဥတုတိစွာ နီရာဒေသအများစုမာ ဖြစ်ပေါ်လေ့ဟိပြီးး သက်ဟိတိအပေါ် ကြီးမားစွာ သက်ရောက်ရေ။ ကမ္ဘာစွာ [[နီအဖွဲ့အစည်း]]အထဲ [[သက်ဟိ]]များနီထိုင်နှိုင်ရေ တခုတည်းသော ဂြိုဟ်ဖြစ်တေ။ သက်ဟိမျိုးစိတ်ပေါင်း ၁၀-၁၄ [[မီလီယံ]]ခန့် နီထိုင်ကတ်ပြီး<ref name="MillerSpoolman2012">{{cite book |last1=Miller |first1=G. |last2=Spoolman |first2=Scott |title=Environmental Science |chapter=Biodiversity and Evolution |url=https://books.google.com/books?id=NYEJAAAAQBAJ&pg=PA62 |date=1 January 2012 |publisher=Cengage Learning |isbn=1-133-70787-4 |page=62 |accessdate=27 December 2014 |archive-date=2 May 2019 |archive-url=https://web.archive.org/web/20190502055246/https://books.google.com/books?id=NYEJAAAAQBAJ&pg=PA62 |url-status=live }}</ref> လူသားမျိုးနွယ်မာ အရွီအတွက်အားဖြင့် ၇.၆ [[ဘီလီယံ]]ခန့်ဖြစ်တေ။ နံဘေးဟိ [[ကြာသပတီးဂြိုဟ်]]၏ ပြင်းထန်သော [[ဒြပ်ဆွဲငင်အား]]က ကမ္ဘာကို [[ဥက္ကာပျံ]]တိနန့် တိုက်မိနိုင်ချေမှ အတန်အသင့် အကာအကွယ်ပီးနီရေဟု ယူဆထားရေ။ ကမ္ဘာ ဖွဲ့တည်ပြီး ပထမ ဘီလီယံနှစ်များမာ သက်ဟိဇီဝရေ ပင်လယ်သမုဒ္ဒရာမာ စတင်ရှင်သန်ခပြီးကေ [[ကမ္ဘာ့လီထု]]နန့် ကုန်းမြီတိကို အကျိုးသက်ရောက်ခကာ လွန်ခရေနှစ်ပေါင်း ၄.၁ ဘီလီယံမှစပြီးကေ သက်ဟိရို့ ရှင်သန်ပေါက်ဖွားခဟန် ဟိရေ။<ref name="AP-20151019">{{cite news |last=Borenstein |first=Seth |title=Hints of life on what was thought to be desolate early Earth |url=http://apnews.excite.com/article/20151019/us-sci--earliest_life-a400435d0d.html |date=19 October 2015 |work=Excite |location=Yonkers, NY |publisher=Mindspark Interactive Network |agency=Associated Press |accessdate=20 October 2015 |archivedate=23 October 2015 |archiveurl=https://web.archive.org/web/20151023200248/http://apnews.excite.com/article/20151019/us-sci--earliest_life-a400435d0d.html }}</ref><ref name="PNAS-20151014-pdf">{{cite journal |last1=Bell |first1=Elizabeth A. |last2=Boehnike |first2=Patrick |last3=Harrison |first3=T. Mark |last4=Mao |first4=Wendy L. |display-authors=3 |date=19 October 2015 |title=Potentially biogenic carbon preserved in a 4.1 billion-year-old zircon |url=http://www.pnas.org/content/early/2015/10/14/1517557112.full.pdf |format=PDF |journal=Proc. Natl. Acad. Sci. U.S.A. |location=Washington, D.C. |publisher=National Academy of Sciences |doi=10.1073/pnas.1517557112 |issn=1091-6490 |accessdate=20 October 2015 |pmid=26483481 |pmc=4664351 |volume=112 |issue=47 |pages=14518–21 |bibcode=2015PNAS..11214518B }} {{Cite web |title=မော်ကွန်းတင်ပြီးမိတ္တူ |url=http://www.pnas.org/content/early/2015/10/14/1517557112.full.pdf |access-date=24 June 2018 |archive-date=6 November 2015 |archive-url=https://web.archive.org/web/20151106021508/http://www.pnas.org/content/early/2015/10/14/1517557112.full.pdf }} {{Cite web |title=မော်ကွန်းတင်ပြီးမိတ္တူ |url=http://www.pnas.org/content/early/2015/10/14/1517557112.full.pdf |accessdate=24 June 2018 |archivedate=6 November 2015 |archiveurl=https://web.archive.org/web/20151106021508/http://www.pnas.org/content/early/2015/10/14/1517557112.full.pdf }} Early edition, published online before print.</ref> ကမ္ဘာမြေ၏သမိုင်းမာ [[မျိုးသုဉ်းခြင်း|မျိုးသုဉ်းမှုဖြစ်ရပ်များ]]ကြောင့် သက်ဟိမျိုးစိတ် ၉၉ ရာခိုင်နှုန်း<ref name="Book-Biology">{{cite book |editor1=Kunin, W.E. |editor2=Gaston, Kevin |title=The Biology of Rarity: Causes and consequences of rare—common differences |url=https://books.google.com/books?id=4LHnCAAAQBAJ&pg=PA110 |date=31 December 1996 |isbn=978-0412633805 |page=110 |accessdate=26 May 2015 |archive-date=4 September 2016 |archive-url=https://web.archive.org/web/20160904152014/https://books.google.com/books?id=4LHnCAAAQBAJ&pg=PA110 |url-status=live }}</ref> ပျက်စီးကွယ်ပျောက်ခဖူးရေ။<ref name="StearnsStearns2000">{{cite book |last=Stearns |first=Beverly Peterson |last2=Stearns |first2=S. C. |last3=Stearns |first3=Stephen C. |title=Watching, from the Edge of Extinction |url=https://books.google.com/books?id=0BHeC-tXIB4C |year=2000 |publisher=Yale University Press |isbn=978-0-300-08469-6 |page=preface x |accessdate=30 May 2017 |archive-date=28 November 2021 |archive-url=https://web.archive.org/web/20211128013934/https://books.google.com/books?id=0BHeC-tXIB4C |url-status=live }}</ref><ref name="NYT-20141108-MJN">{{cite news |last=Novacek |first=Michael J. |title=Prehistory's Brilliant Future |url=https://www.nytimes.com/2014/11/09/opinion/sunday/prehistorys-brilliant-future.html |date=8 November 2014 |work=The New York Times |accessdate=25 December 2014 |archivedate=29 December 2014 |archiveurl=https://web.archive.org/web/20141229225657/http://www.nytimes.com/2014/11/09/opinion/sunday/prehistorys-brilliant-future.html }}</ref> ဒေနိန့်ထိ တည်ဟိရေ လှောက်မှန်းခြေ မျိုးစိတ်တိမာ ကျယ်ပြန့်လှကာ<ref name=science_241_4872_1441/><ref name="MillerSpoolman2012"/><ref name="NSF-2016002">{{cite news |author=Staff |title=Researchers find that Earth may be home to 1 trillion species |url=https://www.nsf.gov/news/news_summ.jsp?cntn_id=138446 |date=2 May 2016 |publisher=National Science Foundation |accessdate=6 May 2016 |archivedate=4 May 2016 |archiveurl=https://web.archive.org/web/20160504111108/https://www.nsf.gov/news/news_summ.jsp?cntn_id=138446 }}</ref> မျိုးစိတ်အများစုကို သိပ္ပံနည်းကျ ဖော်ပြထားနိုင်ခြင်း မဟိသိမ့်ပါ၊၊<ref name="PLoS-20110823">{{cite journal |last1=Mora |first1=C. |last2=Tittensor |first2=D.P. |last3=Adl |first3=S. |last4=Simpson |first4=A.G. |last5=Worm |first5=B. |title=How many species are there on Earth and in the ocean? |date=23 August 2011 |journal=PLOS Biology |doi=10.1371/journal.pbio.1001127 |pmid=21886479 |pmc=3160336 |volume=9 |issue=8 |pages=e1001127}}</ref> ကမ္ဘာထက်မာ လူသားတိ ၈ ဘီလီယံနီးပါးခန့် နီထိုင်ကတ်ပြီး အသက်ရှင်သန်ရီးအတွက် ကမ္ဘာ၏ ဇီဝအလွှာ (biosphere) နန့် သဘာဝရင်းမြစ်များထက်မာ မှီခိုကတ်ရရေ။
==သမိုင်းကြောင်း==
=== ဖွဲ့တည်ခြင်း ===
[[File:Protoplanetary-disk.jpg|thumb|Left|အစောပိုင်းကာလ နီအဖွဲ့အစည်း၏ ဂြိုဟ်ချပ်ပြားအား စိတ်ကူးယိုင်ရီးဆွဲထားပုံ]]
နီအဖွဲ့အစည်းဟိ သက်တမ်းအရင့်ဆုံးပစ္စည်းမာ လွန်ခရေ ၄.၅၆၇၂±၀.၀၀၀၆ ဘီလီယံနှစ်အကြာက ဖြစ်တည်ရေ။<ref name=bowring_housch1995/> သီအိုရီအရ ကမ္ဘာစွာ နေပေါက်ဖွားပြီး ယင်း၏အစိတ်အပိုင်းတိက ဖွဲ့တည်ခြင်းဖြစ်တေ။ သုတေသနတခုအရ လွန်ခရေနှစ်ပေါင်း ၄.၅၃ ဘီလီယံအကြာက လကမ္ဘာ ဖြစ်တည်ခဟုဆိုရေ။<ref>{{Cite journal|last1=Tartèse|first1=Romain|last2=Anand|first2=Mahesh|last3=Gattacceca|first3=Jérôme|last4=Joy|first4=Katherine H.|author-link4=Katherine Joy|last5=Mortimer|first5=James I.|last6=Pernet-Fisher|first6=John F.|last7=Russell|first7=Sara|last8=Snape|first8=Joshua F.|last9=Weiss|first9=Benjamin P.|date=2019|title=Constraining the Evolutionary History of the Moon and the Inner Solar System: A Case for New Returned Lunar Samples|journal=Space Science Reviews|language=en|volume=215|issue=8|page=54|doi=10.1007/s11214-019-0622-x|bibcode=2019SSRv..215...54T|issn=1572-9672|doi-access=free}}</ref> အဆိုပြုချက်တခုအရမူ [[အင်္ဂါဂြိုဟ်]]အရွယ်အစားဟိ ''သီယာ''ဟုခေါ်ရေ ဂြိုဟ်တခုက ကမ္ဘာမြေအား ဝင်တိုက်ခသိရေဟုဆိုရေ။ ယင်းဂြိုဟ်စွာ ကမ္ဘာ၏ ၁၀ ရာခိုင်နှုန်းသော အရွယ်အစားဟိရေဟုဆိုပြီး ထိတိုက်မှုကြောင့် ယင်း၏အစိတ်အပိုင်းတချို့စွာ ကမ္ဘာမြေနန့် ပေါင်းစပ်ခရေလို့ဆိုရေ။<ref name=canup_asphaug2001b /><ref>{{cite journal|url=https://arxiv.org/ftp/arxiv/papers/1410/1410.3819.pdf|title=On the origin and composition of Theia: Constraints from new models of the Giant Impact|journal=Icarus|last1=Meier|first1=M. M. M.|last2=Reufer|first2=A.|last3=Wieler|first3=R.|date=4 August 2014|volume=242|access-date=25 October 2020|page=5|doi=10.1016/j.icarus.2014.08.003|arxiv=1410.3819|bibcode=2014Icar..242..316M|s2cid=119226112}} {{Cite web |title=မော်ကွန်းတင်ပြီးမိတ္တူ |url=https://arxiv.org/ftp/arxiv/papers/1410/1410.3819.pdf |accessdate=22 November 2021 |archivedate=30 October 2020 |archiveurl=https://web.archive.org/web/20201030120856/https://arxiv.org/ftp/arxiv/papers/1410/1410.3819.pdf }}</ref> လွန်ခရေနှစ်ပေါင်း ၄.၁ ဘီလီယံနန့် ၃.၈ ဘီလီယံအထဲ လကမ္ဘာအား ဥက္ကာခဲများစွာ ဝင်တိုက်ခမှုက လကမ္ဘာ၏ ဒေနိခေတ် မြီမျက်နှာသွင်ပြင်တိကို ထုဆစ်ပုံဖော်ခရေလို့ဆိုရေ။<ref>{{cite book|title=Encyclopedia of Astrobiology|url=https://archive.org/details/encyclopediaastr00amil|first1=Philippe|last1= Claeys|first2=Alessandro|last2=Morbidelli|author-link2=Alessandro Morbidelli (astronomer)|editor-first1=Muriel|editor-last1= Gargaud|editor-first2=Prof Ricardo|editor-last2=Amils|editor-first3= José Cernicharo|editor-last3= Quintanilla|editor-first4= Henderson James (Jim) |editor-last4= Cleaves II|editor-first5=William M.|editor-last5=Irvine|editor-first6= Prof Daniele L.|editor-last6= Pinti|editor-first7= Michel|editor-last7= Viso|year= 2011|publisher=Springer Berlin Heidelberg|pages=[https://archive.org/details/encyclopediaastr00amil/page/n953 909]–12|doi=10.1007/978-3-642-11274-4_869|chapter=Late Heavy Bombardment|isbn= 978-3-642-11271-3}}</ref>
===ဘူမိဗေဒဆိုင်ရာ သမိုင်း===
ကမ္ဘာ့လီထုနန့် သမုဒ္ဒရာတိကို နဂါးတောင်လှုပ်ယှားမှုနန့် အီးခဲနိန်ရေဓာတ်ငွိများ ကမ္ဘာမြီမျက်နှာပြင်သို့ ပေါ်ထွက်လှာမှုကြောင့် ဖြစ်ပေါ်လာရေ။<ref name="watersource" /><ref>{{cite web |url=https://www.lpi.usra.edu/education/timeline/gallery/slide_17.html |title=Earth's Early Atmosphere and Oceans |work=Lunar and Planetary Institute |publisher=Universities Space Research Association |access-date=27 June 2019 |accessdate=22 November 2021 |archivedate=8 July 2019 |archiveurl=https://web.archive.org/web/20190708180329/https://www.lpi.usra.edu/education/timeline/gallery/slide_17.html }}</ref> ယင်းရင်းမြစ်တိက ရီငွိစွာ သမုဒ္ဒရာတိသို့ ငွိရည်ဖွဲ့စုဖွဲ့ကတ်တေ။ [[ကြယ်တင်းခွန်]]၊ [[ဥက္ကာခဲ]]တိက ရေနန့် ရီခဲတိစွာလည်း သမုဒ္ဒရာများအတွင်းကို စုဝေးခကတ်တေ။ ပင်လယ်တိအတွက် လိုအပ်ရေရေစွာ ကမ္ဘာဖြစ်တည်ကပင် တည်ဟိခဟန်ဟိရေ။<ref>{{Cite journal|last1=Piani|first1=Laurette|last2=Marrocchi|first2=Yves|last3=Rigaudier|first3=Thomas|last4=Vacher|first4=Lionel G.|last5=Thomassin|first5=Dorian|last6=Marty|first6=Bernard|date=2020|title=Earth's water may have been inherited from material similar to enstatite chondrite meteorites|url=https://science.sciencemag.org/content/369/6507/1110|journal=Science|language=en|volume=369|issue=6507|pages=1110–13|doi=10.1126/science.aba1948|issn=0036-8075|pmid=32855337|bibcode=2020Sci...369.1110P|s2cid=221342529}} {{Cite web |title=မော်ကွန်းတင်ပြီးမိတ္တူ |url=https://science.sciencemag.org/content/369/6507/1110 |accessdate=22 November 2021 |archivedate=28 August 2020 |archiveurl=https://web.archive.org/web/20200828185943/https://science.sciencemag.org/content/369/6507/1110 }}</ref> ဒေစံဥပမာပုံစံမာ နိန်ရေ [[နီရောင်ခြည် တောက်ပမှု|လက်ဟိတောက်ပမှု]]၏ ၇၀ ရာခိုင်နှုန်းလှောက်ရာဟိသိမ့်ရေအချိန်<ref name=asp2002 /> လီထုထဲဟိ [[ဖန်လုံအိမ်ဓာတ်ငွိ]]တိစွာ သမုဒ္ဒရာတိကို အီးခဲမလားစီရန် ထိန်းကျောင်းပီးခရေ။<ref name=physorg20100304 /> ကမ္ဘာဖွဲ့တည်ပြီးကေ နှစ်ပေါင်း ၃.၅ ဘီလီယံကြာသော် ကမ္ဘာ၏ သံလိုက်စက်ကွင်း ဖြစ်တည်လှာခရေ။ ယင်းသံလိုက်စက်ကွင်းစွာ လီထုကို နီလေ (solar wind) မှ နုတ်ယူမလားစီရန် ကာကွယ်ပီးခရေ။ ကမ္ဘာ၏ အပြင်ဘက်ချော်ရည်အလွှာစွာ အီးမြလာယား ပထမဆုံး အစိုင်အခဲလွှာကို ဖွဲ့တည်လှာခရေ။
===အနာဂတ်===
[[ကာဗွန်ဒိုင်အောက်ဆိုဒ်]] {{CO2}} စွာ လီထုထဲမာ သက်တမ်းရှည်ကြာစွာ တည်ဟိနီနှိုင်အတွက်နန့် လူသားရို့၏ {{CO2}} ထုတ်လွှတ်မှုစွာ နောင်နှစ်ပေါင်း တသိန်းမာ ဖြစ်ပေါ်လှာဖို့ ရီခဲခေတ်တခုကို နှောင့်နှေးစီမည်ဖြစ်တေ။<ref>{{Cite journal|last1=Ganopolski|first1=A.|last2=Winkelmann|first2=R.|last3=Schellnhuber|first3=H. J.|date=2016|title=Critical insolation – CO<sub>2</sub> relation for diagnosing past and future glacial inception|url=https://www.nature.com/articles/nature16494|journal=Nature|language=en|volume=529|issue=7585|pages=200–03|doi=10.1038/nature16494|pmid=26762457|bibcode=2016Natur.529..200G|s2cid=4466220|issn=1476-4687}} {{Cite web |title=မော်ကွန်းတင်ပြီးမိတ္တူ |url=https://www.nature.com/articles/nature16494 |accessdate=23 November 2021 |archivedate=16 October 2020 |archiveurl=https://web.archive.org/web/20201016221338/https://www.nature.com/articles/nature16494 }}</ref>
ကမ္ဘာ၏ အနာဂတ်စွာ [[နေ]]နန့် တိုက်ရိုက် သက်ဆိုင်ဗျာယ်ဟိရေ။ နောင်နှစ်ပေါင်း ၁.၁ ဘီလီယံမာ နီ၏ တောက်ပမှုစွာ အဂုလက်ဟိထက် ၁၀ ရာခိုင်နှုန်း၊ နှစ်ပေါင်း ၃.၅ ဘီလီယံမာ ၄၀ ရာခိုင်နှုန်းသို့ တိုးလာမည်ဖြစ်တေ။<ref name="sun_future"/> ကမ္ဘာ့မျက်နှာပြင် အပူချိန် တိုးပွားလာယား အင်အော်ဂဲနစ် ကာဗွန်သံသရာကို အဟိန်တင်စေကာ [[ကာဗွန်ဒိုင်အောက်ဆိုဒ်]] စုစည်းမှုစနစ်ကို လျှော့ကျစီဖို့ဖြစ်တေ။<ref name="britt2000" /> ယင်းပိုင်ဖြစ်ကေ နှစ်ပေါင်း ၅၀၀ မှ ၉၀၀ မီလီယံအထဲ အပင်တိအတွက် [[ဖိုတိုဆင်သစ်ဆစ်|အလင်းမှီစု]]နည်းနန့် အစာချက်လုပ်ဖို့ မဖြစ်နှိုင်တော့ပါ၊၊ အပင်များ နည်းပါးလာခြင်းစွာ လီထုထဲဟိ [[အောက်ဆီဂျင်]] ပမာဏကို နည်းပါးလားစီဖို့ဖြစ်ကာ တိရိစ္ဆာန်လောက ရှင်သန်ရန် မဖြစ်နှိုင်တော့ပါ၊၊<ref name=ward_brownlee2002/> နောက်ထပ် နှစ်ပေါင်း ၁ ဘီလီယံကြာသော် မြီမျက်နှာပြင်ဟိ ရေအားလုံး ကွယ်ပျောက်လားပြီးကေ<ref name=carrington/> တကမ္ဘာလုံး အပူချိန်စွာ ၇၀ °C (၁၅၈ °F) သို့ ရောက်ဟိမည်ဖြစ်တေ။<ref name=ward_brownlee2002/> ယင်းအချိန်မှစပြီးကေ နှစ်ပေါင်း ၅၀၀ မီလီယံလှောက်အတွင်း ကမ္ဘာထက်မာ သက်ဟိများ ရှင်သန်နှိုင်သိမ့်ရေလို့ လှောက်မှန်းထားရေ။ တကယ်လို့ လီထုမှ [[နိုက်ထရိုဂျင်]]အား ဖယ်ထုတ်လိုက်ကေ<ref name=pnas1_24_9576/> နှစ်ပေါင်း ၂.၃ ဘီလီယံလှောက်အတွင်း သက်ဟိများ ရှင်သန်နိုင်ကောင်းရှင်သန်နှိုင်သိမ့်ရေ။ ထို့တနည်းဘဲ နီ၏အပူချိန်စွာ တိုင်းဖို့လို့ ယူဆပါကလေ့ နှစ်ပေါင်း ၁ ဘီလီယံအထဲ ခေတ်သစ်သမုဒ္ဒရာတိက ၂၇ ရာခိုင်နှုန်းသော ရီထုရို့စွာ ကမ္ဘာ့အထဲပိုင်းအလွှာသို့ ဆင်းသက်ကုန်မည်ဖြစ်တေ။<ref name=hess5_4_569/>
နိန်ရေ နောင်နှစ်ပေါင်း ၅ ဘီလီယံကြာကေ [[ဧရာမ ကြယ်နီ]]ကြီးအဖြစ်သို့ [[ကြယ်ရို့၏ ဆင့်ကဲပြောင်းလဲမှု|ဆင့်ကဲပြောင်းလဲ]]လားမေဖြစ်ပြီးကေ အဂုလက်ဟိအရွယ်အစားထက် အဆပေါင်း ၂၅၀ သို့ ရောက်ဟိကာ ၁ [[AU]] (မိုင်ပေါင်း ၉၃ မီလီယံခန့်) ကြီးထွားလာမည်ဖြစ်တေ။<ref name="sun_future" /><ref name="sun_future_schroder"/> ကမ္ဘာ၏ ကြမ္မာစွာ မသေချာပါ၊၊ ဧရာမ ကြယ်နီတစင်းအနိန်နန့် နိန်ရေ ယင်း၏ထုထည် ပမာဏ ၃၀ ရာခိုင်နှုန်းအား ဆုံးယှုံးလိုက်ရဖို့ဖြစ်ပြီးကေ ဖြားကျိုးသက်ရောက်မှု (tidal effect) မဟိပါက ကမ္ဘာပတ်လမ်းစွာ နီမှ ၁.၇ AU အကွာသို့ ရွိ့လားမည်ဖြစ်တေ။ တနည်း ဖြားကျိုးသက်ရောက်မှု ဟိပါက ကမ္ဘာစွာ နီ၏လီထုထဲကို တိုးဝင်ကာ အငွီ့ပျံလားမေဖြစ်တေ။<ref name="sun_future" /> နီ၏တောက်ပမှုစွာ အဂုထက် အဆပေါင်း ၅၀၀ ပိုပြီးကေတောက်ပလာမည်ဖြစ်ကာ ကမ္ဘာပေါ်ဟိ သက်ဟိများ အားနုန်း မဟုတ်ကေ အင်တန်များများကို လွန်ကဲရေ အပူချိန်က ပျက်စီးစီမည်ဖြစ်တေ။<ref name="sun_future" /> ၂၀၀၈ ခုနှစ်မာ ပြုလုပ်ရေ ပုံတူဖန်တီးမှန်းဆမှု (simulation) တခုက ကမ္ဘာစွာ ဖြားကျိုးသက်ရောက်မှုကြောင့် နီ၏လီထုသို့ ဝင်ရောက်ကာ လောင်ကျွမ်းလားမေဟုဆိုရေ။<ref name="sun_future_schroder" />
==ရုပ်ပိုင်းဆိုင်ရာ ဂုဏ်သတ္တိတိ==
===ပုံသဏ္ဌာန်===
ကမ္ဘာ၏ပုံသဏ္ဌာန်စွာ ထိပ်နှစ်ဘက်ပြားလို့ အလယ်မာ လုံးဝိုင်းရေ။ ကမ္ဘာ၏ လည်ပတ်မှုကြောင့် ဝင်ရိုးစွန်းဒေသများမာ ပြားချပ်ပြီး [[အီကွေတာ]]မာ ဖောင်းကားရေ။<ref name=milbert_smith96 /> အီကွေတာဟိ ကမ္ဘာ၏အချင်းစွာ ၄၃ ကီလိုမီတာ (၂၇ မိုင်) ဟိပြီးး ဝင်ရိုးစွန်း တခုမှတခုသို့ အချင်းထက် ပိုပြီးကေများရေ။<ref name="ngdc2006" />
===ဓာတုပစ္စည်း ပါဝင်မှု===
{| class="wikitable" style="float: right; clear: right; margin-left: 2em;"
|+ ကမ္ဘာ့ကျောက်လွှာ၏ ဓာတုပစ္စည်း ပါဝင်မှု<ref name=brown_mussett1981/><ref name="Rudnick2003">{{cite book |chapter=Composition of the Continental Crust |journal=Treatise on Geochemistry |publisher=Elsevier Science |location=New York |first1=R. L. |last1=Rudnick |first2=S. |last2=Gao |title=Treatise on Geochemistry |editor1-first=H. D. |editor1-last=Holland |editor2-first=K. K. |editor2-last=Turekian |volume=3 |pages=1–64 |year=2003 |doi=10.1016/B0-08-043751-6/03016-4 |isbn=978-0-08-043751-4 |bibcode=2003TrGeo...3....1R}}</ref><ref name="White2014">{{cite book |chapter=Composition of the Oceanic Crust |title=Treatise on Geochemistry |publisher=Elsevier Science |location=New York |first1=W. M. |last1=White |first2=E. M. |last2=Klein |author-link2=Emily Klein |editor1-first=H. D. |editor1-last=Holland |editor2-first=K. K. |editor2-last=Turekian |volume=4 |pages=457–96 |year=2014 |doi=10.1016/B978-0-08-095975-7.00315-6 |isbn=978-0-08-098300-4 |hdl=10161/8301}}</ref>
!rowspan="2"|ဒြပ်ပေါင်း
!rowspan="2"|ဖော်မျူလာ
!colspan="2"|ပါဝင်ပစ္စည်း
|-
!style="font-size: smaller;"|ကုန်းမြီ
!style="font-size: smaller;"|သမုဒ္ဒရာ
|-
|[[ဆီလီကာ]]
|style="text-align: center;"|{{chem2|SiO2}}
|style="text-align: right;"|60.2%
|style="text-align: right;"|48.6%
|-
|[[အလူမီနီယမ် အောက်ဆိုဒ်|အလူမီနာ]]
|style="text-align: center;"|{{chem2|Al2O3}}
|style="text-align: right;"|15.2%
|style="text-align: right;"|16.5%
|-
|[[ကယ်လဆီယမ် အောက်ဆိုဒ်|ထုံး]]
|style="text-align: center;"|CaO
|style="text-align: right;"|5.5%
|style="text-align: right;"|12.3%
|-
|[[မဂ္ဂနက်ဆီယမ် အောက်ဆိုဒ်|မဂ္ဂနီဆီယာ]]
|style="text-align: center;"|MgO
|style="text-align: right;"|3.1%
|style="text-align: right;"|6.8%
|-
|iron(II) oxide
|style="text-align: center;"|FeO
|style="text-align: right;"|3.8%
|style="text-align: right;"|6.2%
|-
|[[ဆိုဒီယမ် အောက်ဆိုဒ်]]
|style="text-align: center;"|{{chem2|Na2O}}
|style="text-align: right;"|3.0%
|style="text-align: right;"|2.6%
|-
|[[ပိုတက်ဆီယမ် အောက်ဆိုဒ်]]
|style="text-align: center;"|{{chem2|K2O}}
|style="text-align: right;"|2.8%
|style="text-align: right;"|0.4%
|-
|iron(III) oxide
|style="text-align: center;"|{{chem2|Fe2O3}}
|style="text-align: right;"|2.5%
|style="text-align: right;"|2.3%
|-
|[[ရေ (မော်လီကျူး)|ရေ]]
|style="text-align: center;"|{{chem2|H2O}}
|style="text-align: right;"|1.4%
|style="text-align: right;"|1.1%
|-
|[[ကာဗွန်ဒိုင်အောက်ဆိုဒ်]]
|style="text-align: center;"|{{chem2|CO2}}
|style="text-align: right;"|1.2%
|style="text-align: right;"|1.4%
|-
|[[တိုက်တေနီယမ် ဒိုင်အောက်ဆိုဒ်]]
|style="text-align: center;"|{{chem2|TiO2}}
|style="text-align: right;"|0.7%
|style="text-align: right;"|1.4%
|-
|phosphorus pentoxide
|style="text-align: center;"|{{chem2|P2O5}}
|style="text-align: right;"|0.2%
|style="text-align: right;"|0.3%
|-
!colspan="2"|စုစုပါင်း
!style="text-align: right;"|99.6%
!style="text-align: right;"|99.9%
|}
ကမ္ဘာ့ထုထည်စွာ ၅.၉၇×၁၀<sup>၂၄</sup> ကီလိုဂရမ် နီးပါးလှောက်ရှိပြီး အများစုကတော့ခါ [[သံ (သတ္တု)|သံ]] (၃၂.၁%)၊ အောက်ဆီဂျင် (၃၀.၁%)၊ [[ဆီလီကွန်]] (၁၅.၁%)၊ [[မဂ္ဂနီစီယမ်]] (၁၃.၉%)၊ ဆာလဖာ (၂.၉%)၊ [[နီကယ်]] (၁.၈%)၊ [[ကယ်လစီယမ်]] (၁.၅%)၊ [[အလူမီနီယမ်]] (၁.၄%) နန့် ကျန်ရေ ဒြပ်စင်များ ၁.၂% ပါဝင်ရေ။ ပင်မမြာတိုင်မာ သံ ၈၈.၈%၊ နီကယ် ၅.၈%၊ ဆာလဖာ ၄.၅% ရို့နန့် ဖွဲ့စည်းထားရေဟု လှောက်မှန်းရရေ။<ref name=pnas71_12_6973/>
ကျောက်မာလွှာမာ တွိရသော ကျောက်သီးအများစုစွာ အောက်ဆိုဒ်များ ဖြစ်ကတ်တေ။ အဓိကကတော့ခါ [[ကလိုရင်း]]၊ [[ဆာလဖာ]]နန့် [[ဖလိုရင်း]]ရို့ဖြစ်ကတ်တေ။ ကျောက်မာလွှာ၏ ၉၉ ရာခိုင်နှုန်းကိုမူ ဆီလီကာ၊ အလူမီနာ၊ အိုင်းယွန်း အောက်ဆိုဒ်၊ ထုံး၊ မဂ္ဂနီဆီယာ၊ ပိုတက်နန့် ဆိုဒါရို့နန့် ဖွဲ့စည်းထားရေ။<ref name=brown_mussett1981/><ref name=pnas71_12_6973/>
===မျက်နှာပြင်===
[[File:Earth dry elevation.stl|thumb|Left|ရေမပါဟိရေ – လက်ဟိကမ္ဘာဂြိုဟ် (သုံးဘက်မြင် စက်ဝိုင်းလုံးပုံစံမြင်ရန် နှိပ်လို့ချဲ့ကြည့်ပါ)။]]
ကမ္ဘာ့ မျက်နှာပြင် စုစုပေါင်း ဧရိယာစွာ စတုရန်းမိုင်ပေါင်း ၁၉၇ မီလီယံ ဟိရေ။<ref name="Pidwirny 2006_8"/> ယင်း၏ ၇၀.၈ ရာခိုင်နှုန်း<ref name="Pidwirny 2006_8"/> (စတုရန်းမိုင်ပေါင်း ၁၃၉.၄၃ မီလီယံ) မာ ပင်လယ်ရီ မျက်နှာပြင်အောက်မာ တည်ဟိပြီး ပင်လယ်ရီဖြင့် ဖုံးလွှမ်းထားရေ။<ref>{{cite web |url=https://www.cia.gov/library/publications/the-world-factbook/geos/xx.html |title=World Factbook |publisher=Cia.gov |accessdate=2 November 2012 |archivedate=5 January 2010 |archiveurl=https://web.archive.org/web/20100105171656/https://www.cia.gov/library/publications/the-world-factbook/geos/xx.html }}</ref> ရေဖြင့် ဖုံးလွှမ်းမထားရေ လက်ကျန် ၂၉.၂% တိမာ တောင်တန်းများ၊ [[ကန္တာရ]]တိနန့် တခြားသော ကုန်းမြီတိဖြစ်တေ။ ကုန်းမြီမျက်နှာပြင်၏ ပင်လယ်ရီမျက်နှာပြင်အမြင့်မာ အနိမ့်ဆုံးဖြစ်ရေ [[ပင်လယ်သေ]]ဒေသမာ −၄၁၈ မီတာဟိပြီးး အမြင့်ဆုံးဖြစ်ရေ [[ဧဝရတ်တောင်]]မာ ၈၈၄၈ မီတာ ဟိရေ။ ကုန်းမြီ၏ ပင်လယ်ရီ မျက်နှာပြင်အမြင့် ပျမ်းမျှအမြင့်မာ ၇၉၇ မီတာ ဟိရေ။<ref>{{cite web |url=https://ngdc.noaa.gov/mgg/global/etopo1_surface_histogram.html |title=Hypsographic Curve of Earth's Surface from ETOPO1 |first=National Geophysical Data |last=Center |website=ngdc.noaa.gov |accessdate=24 June 2018 |archivedate=15 September 2017 |archiveurl=https://web.archive.org/web/20170915114233/https://ngdc.noaa.gov/mgg/global/etopo1_surface_histogram.html }}</ref> [[အနည်ကျကျောက်]]တိစွာ ကမ္ဘာ့အပြင်ဘက်ကျောက်လွှာ၏ ၅ ရာခိုင်နှုန်းသာ ပါဝင်ဖွဲ့စည်းထားရေ်လည်း ကမ္ဘာ့တိုက်ကတ်ီးတိ၏ မျက်နှာပြင်ကိုမူ အနည်ကျကျောက်တိက ၇၅ ရာခိုင်နှုန်း လွှမ်းမိုးထားရေ။<ref name=jessey /> စုစုပေါင်း စိုက်ပျိုးနှိုင်ရေမြေစွာ ကုန်းမြီ၏ ၁၀.၉ ရာခိုင်နှုန်းဟိပြီးး ၁.၃ ရာခိုင်နှုန်းစွာ အမြဲတမ်း စိုက်ပျိုးမြေများဖြစ်ကတ်တေ။<ref>{{cite web |title=World Bank arable land |url=http://data.worldbank.org/indicator/AG.LND.ARBL.ZS/countries/1W?display=graph |publisher=World Bank |access-date=19 October 2015 |accessdate=23 November 2021 |archivedate=2 October 2015 |archiveurl=https://web.archive.org/web/20151002170510/http://data.worldbank.org/indicator/AG.LND.ARBL.ZS/countries/1w?display=graph }}</ref><ref>{{cite web |title=World Bank permanent cropland |url=http://data.worldbank.org/indicator/AG.LND.CROP.ZS/countries?display=graph |publisher=World Bank |access-date=19 October 2015 |accessdate=23 November 2021 |archivedate=13 July 2015 |archiveurl=https://web.archive.org/web/20150713131245/http://data.worldbank.org/indicator/AG.LND.CROP.ZS/countries?display=graph }}</ref> ကုန်းမြီမျက်နှာပြင်၏ ၄၀ ရာခိုင်နှုန်းအား [[စိုက်ပျိုးမွီးမြူရီး]]အတွက် အသုံးပြုရေ။ လှောက်မှန်းခြေ သီးနှံပင်စိုက်ပျိုးရီးအတွက် စတုရန်းမိုင် ၆.၄ သန်း၊ မွီးမြူရီးအတွက် စတုရန်းမိုင် ၁၂.၉ သန်း အသီးသီး အသုံးချရေ။<ref name="Hooke2012">{{cite journal |url=https://www.geosociety.org/gsatoday/archive/22/12/pdf/gt1212.pdf |title=Land transformation by humans: A review |journal=GSA Today |first1=Roger LeB. |last1=Hooke |first2=José F. |last2=Martín-Duque |first3=Javier |last3=Pedraza |volume=22 |issue=12 |pages=4–10 |date=December 2012 |doi=10.1130/GSAT151A.1 }} {{Cite web |title=မော်ကွန်းတင်ပြီးမိတ္တူ |url=https://www.geosociety.org/gsatoday/archive/22/12/pdf/gt1212.pdf |accessdate=24 June 2018 |archivedate=9 January 2018 |archiveurl=https://web.archive.org/web/20180109181247/https://www.geosociety.org/gsatoday/archive/22/12/pdf/gt1212.pdf }}</ref>
===ရီထု===
ကမ္ဘာမျက်နှာပြင်မာ ရီပေါများခြင်းစွာ နီအဖွဲ့အစည်းဟိ တခြား ဂြိုဟ်တိထဲက ''ဂြိုဟ်ပြာ'' လို့ ခွဲခြားနိုင်ခြင်းဖြစ်တေ။ ကမ္ဘာ့ရီထုမာ အဓိကကတော့ခါ ပင်လယ်သမုဒ္ဒရာရို့ပါဝင်ရေ။ ယကေလေ့ နည်းစနစ်ကျကျဆိုခကေ မြစ်၊ ချောင်း၊ အင်း၊ အိုင်၊ ကုန်းတွင်းပိုင်းပင်လယ်နန့် မြီအောက်ရေရို့ ပါဝင်ရေ။ အနက်ဆုံး မြီအောက်ရေ တည်ဟိရာမာ [[ပစိဖိတ်သမုဒ္ဒရာ]]အထဲဟိ မာရီနာချောက် (Mariana Trench) ၏ ချန်လင်ဂျာဒီး (Challenger Deep) ဖြစ်ပြီးကေ မီတာ ၁၀၉၁၁.၁ (ပေ ၃၅၇၉၉) ဟိရေ။ သမုဒ္ဒရာတိ၏ ထုထည်စွာ ၁.၃၅×၁၀<sup>၁၈</sup> နီးပါးခန့် တနည်း ကမ္ဘာမြေ ထုထည်၏ ၁/၄၄၀၀ ဖြစ်တေ။ သမုဒ္ဒရာတိစွာ ဧရိယာအားဖြင့် စတုရန်းမိုင်ပေါင်း ၁၃၉.၇ မီလီယံဟိပြီးး ပျမ်းမျှအနက်မာ ၃၆၈၂ မီတာ (၁၂၀၈၀ ပေ) ဟိကာ ကမ္ဘာ့မျက်နှာပြင်စွာ ချောမွိ့နီဖို့ဆိုခကေ ပျမ်းမျှအနက်စွာ ၂.၇ မှ ၂.၈ ကီလိုမီတာ ဟိဖို့ဖြစ်တေ။<ref>{{cite encyclopedia |url=https://www.britannica.com/EBchecked/topic/559627/sphere-depth-of-the-ocean |title=sphere depth of the ocean – hydrology |encyclopedia=Encyclopædia Britannica |accessdate=12 April 2015}}</ref><ref>{{cite web |url=https://ase.tufts.edu/cosmos/print_chapter.asp?id=4 |title=Third rock from the Sun – restless Earth |work=NASA's Cosmos |accessdate=12 April 2015 |archivedate=6 November 2015 |archiveurl=https://web.archive.org/web/20151106230149/http://ase.tufts.edu/cosmos/print_chapter.asp?id=4 }}</ref> ရေအားလုံး၏ ၉၇.၅ ရာခိုင်နှုန်းစွာ ရီငန်များဖြစ်ပြီးကေ ကျန် ၂.၅ ရာခိုင်နှုန်းမာ ရီချိုဖြစ်ကာ<ref>{{Cite book|title=On Water|url=https://www.eib.org/en/publications/eib-big-ideas-on-water|access-date=7 December 2020|website=European Investment Bank|year=2019|doi=10.2867/509830|language=en|author1=European Investment Bank|publisher=European Investment Bank|isbn=9789286143199|archive-date=29 November 2020|archive-url=https://web.archive.org/web/20201129051604/https://www.eib.org/en/publications/eib-big-ideas-on-water|url-status=live}}</ref><ref>{{Cite web|title=Chart: Globally, 70% of Freshwater is Used for Agriculture|url=https://blogs.worldbank.org/opendata/chart-globally-70-freshwater-used-agriculture|access-date=7 December 2020|website=World Bank Blogs|date=22 March 2017|last1=Khokhar|first1=Tariq|language=en|accessdate=22 November 2021|archivedate=6 December 2020|archiveurl=https://web.archive.org/web/20201206080843/https://blogs.worldbank.org/opendata/chart-globally-70-freshwater-used-agriculture}}</ref> ရီချို ၆၈.၇ ရာခိုင်နှုန်းစွာ ရီခဲလွှာများမာ တည်ဟိရေ။<ref>{{cite web|last1=Perlman|first1=Howard|date=17 March 2014|title=The World's Water|url=https://water.usgs.gov/edu/earthwherewater.html|access-date=12 April 2015|work=USGS Water-Science School|accessdate=25 June 2018|archivedate=22 April 2015|archiveurl=https://web.archive.org/web/20150422113320/http://water.usgs.gov/edu/earthwherewater.html}}</ref> ကမ္ဘာ၏ အအီးဆုံးဒေသများမာ နှင်းတိစွာ ပုံစံမပျက် ရီခဲအဖြစ် တည်ဟိကတ်တေ။ ယင်းနှင်းများ၊ ရီခဲတိစွာ ကြာလာရေ် ရီခဲလွှာများဖြစ်တည်လှာကတ်တေ။ အာတိတ်ဒေသဟိ ရီခဲပင်လယ်စွာ အမေရိကန်ပြည်ထောင်စုနီးပါးခန့် ကြီးမားလှရေ။ ယကေလေ့ ရာသီဥတုဖောက်ပြန်ပြောင်းလဲမှုတိကြောင့် အယင့်ယင် ဆုတ်ယုတ်ဗျာယ်ဟိရေ။<ref>{{Cite book|last=Hendrix|first=Mark|title=Earth Science: An Introduction|publisher=Cengage|year=2019|isbn=978-0-357-11656-2|location=Boston|page=329}}</ref>
ကမ္ဘာ့သမုဒ္ဒရာတိ၏ ပျမ်းမျှ ရီငန်နှုန်းမာ ပင်လယ်ရီ ၁ ကီလိုဂရမ်မာ ၃၅ ဂရမ်နှုန်း ဖြစ်တေ။ ဆားအများစုကို နဂါးတောင်ပေါက်ကွဲခြင်းက ထွက်လှာရေ။ သမုဒ္ဒရာတိစွာ လီထုထဲဟိ ဓာတ်ငွိတိကို ပျော်ဝင်လားလီရေ လှောင်ကန်များဖြစ်ကတ်ပြီး ယင်းစွာ ပင်လယ်နေသတ္တဝါများ ရှင်သန်ရန် အရေးပါရေ။<ref name=natsci_oxy4 /> ပင်လယ်ရီတိစွာ ကမ္ဘာ့ရာသီဥတုများထက်မာ လွှမ်းမိုးမှုဟိပြီးး သမုဒ္ဒရာတိစွာ အပူလောင်းာင်ကန်အဖြစ် ပြုမူပီးရေ။<ref name=michon2006 /> သမုဒ္ဒရာများဟိ အပူချိန်ပြောင်းလဲမှုတိစွာ [[အယ်လ်နီညို]]ပိုင် သိသာသော ရာသီဥတု ပြောင်းလဲမှုတိကို ဖြစ်ပေါ်စီရေ။<ref name=sample2005 />
===လီထု===
{{Main|ကမ္ဘာ့လီထု}}
[[File:MODIS Map.jpg|thumb|ကမ္ဘာဂြိုဟ်အား တိမ်ဖုံးလွှမ်းထားရေပုံကို [[နာဆာ]]၏ ဂြိုဟ်တုမှ ရိုက်ကူးထားရေ]]
မြီမျက်နှာပြင်အား သက်ရောက်သော ပျမ်းမျှ ကမ္ဘာ့လီထုဖိအားစွာ ကီလိုမီတာ ၈.၅ အမြင့်မာ ၁၀၁.၃၂၅ KPa (၁၄.၆၉၅၉ psi) ဖြစ်တေ။<ref name="Exline2006">{{cite book|last1=Exline|first1=Joseph D.|url=https://www.nasa.gov/pdf/288978main_Meteorology_Guide.pdf|title=Meteorology: An Educator's Resource for Inquiry-Based Learning for Grades 5–9|last2=Levine|first2=Arlene S.|last3=Levine|first3=Joel S.|date=2006|publisher=NASA/Langley Research Center|page=6|id=NP-2006-08-97-LaRC|access-date=23 November 2021|archive-date=28 May 2018|archive-url=https://web.archive.org/web/20180528181043/https://www.nasa.gov/pdf/288978main_Meteorology_Guide.pdf|url-status=live}}</ref> ခြောက်သွိသော လီထုမာ [[နိုက်ထရိုဂျင်]] ၇၈%၊ [[အောက်ဆီဂျင်]] ၂၁%၊ [[ကာဗွန်ဒိုင်အောက်ဆိုဒ်]]၊ ရီငွိနန့် အရာဓာတ်ငွိများ ပါဝင်ရေ။<ref name="Exline2006" />ရီငွိ ပါဝင်မှုစွာ ၀.၀၁ ရာခိုင်နှုန်းနန့် ၄ ရာခိုင်နှုန်းကြားမာ ပြောင်းလဲဗျာယ်တည်ဟိရေ။<ref name="Exline2006" /> ယကေလေ့ ပျမ်းလှောက်မာ ၁ ရာခိုင်နှုန်းဖြစ်တေ။<ref name="earth_fact_sheet" /> [[ထရိုပိုစဖီးယား အလွှာ|ထရိုပိုစဖီးယားလွှာ]]၏ အမြင့်စွာ ဝင်ရိုးစွန်းမာ ၈ ကီလိုမီတာ (၅ မိုင်) နန့် [[အီကွေတာ]]မာ ၁၇ ကီလိုမီတာ (၁၁ မိုင်) ဝန်းကျင်ဟိရေ။<ref name=geerts_linacre97 /> ကမ္ဘာ့လီထု၏ ဘိုင်အိုစဖီးယားမာ [[အိုဇုန်းလွှာ]] တည်ဟိပြီး သက်ဟိများ ရှင်သန်ဖို့အတွက် အန္တရာယ်ဟိရေ [[ခရမ်းလွန်ရောင်ခြည်]]ကို ကာကွယ်ပီးရေ။<ref name="Harrison 2002" /> လီထုစွာ ဥက္ကာခဲတိအား မြီမျက်နှာပြင်သို့ မကျရောက်ခင် လောင်ကျွမ်းစီရား အပူချိန်ကို ချိန်ညှိပီးရေ။<ref name="atmosphere" /> ဒေဖြစ်စိုင်အား ဖန်လုံအိမ် အကျိုးသက်ရောက်မှုဟုခေါ်ကာ မြီပြင်မှ ထုတ်လုပ်သော အပူတိကို ဖမ်းယူထားခြင်းဖြစ်တေ။ ဖန်လုံအိမ် အကျိုးသက်ရောက်မှုကို အဓိကဖြစ်စီသောအရာတိမာ ရီငွိ၊ ကာဗွန်ဒိုင်အောက်ဆိုဒ်၊ [[မီသိန်း]]၊ နိုက်ထရိုက်အောက်ဆိုဒ်နန့် [[အိုဇုန်း]]ရို့ ဖြစ်ကတ်တေ။ ဧချင့်ပိုင် အပူလှောင်ရေဖြစ်စိုင် မဟိပါက လက်ဟိအပူချိန် +၁၅ °C (၅၉ °F)<ref name="Pidwirny2006_7" /> နန့် ဆန့်ကျင်ဘက် −၁၈ °C (၀ °F) သို့ ရောက်ဟိမည်ဖြစ်ပြီးကေ သက်ဟိများ ဖြစ်တည်ခလိမ့်မေ မဟုတ်လီ။ ၂၀၁၇ ခုနှစ် မေလမာ ကမ္ဘာ့လီထုဟိ ရီခဲ ပုံဆောင်ခဲမှ ရောင်ပြန်ဟပ်သော အလင်းကို မိုင်ပေါင်းများစွာဝေးသော [[ဂြိုဟ်တု]]တခုမှ မြင်ခရရေ။<ref name="NYT-20170519">{{cite news |last=St. Fleur |first=Nicholas |title=Spotting Mysterious Twinkles on Earth From a Million Miles Away |url=https://www.nytimes.com/2017/05/19/science/dscovr-satellite-ice-glints-earth-atmosphere.html |date=19 May 2017 |work=The New York Times |accessdate=20 May 2017 |archivedate=20 May 2017 |archiveurl=https://web.archive.org/web/20170520002922/https://www.nytimes.com/2017/05/19/science/dscovr-satellite-ice-glints-earth-atmosphere.html }}</ref><ref name="GRL-201760515">{{cite journal |last1=Marshak |first1=Alexander |last2=Várnai |first2=Tamás |last3=Kostinski |first3=Alexander |title=Terrestrial glint seen from deep space: oriented ice crystals detected from the Lagrangian point |url=http://onlinelibrary.wiley.com/doi/10.1002/2017GL073248/abstract |date=15 May 2017 |journal=Geophysical Research Letters |doi=10.1002/2017GL073248 |accessdate=20 May 2017 |volume=44 |issue=10 |pages=5197–5202 |bibcode=2017GeoRL..44.5197M }} {{Cite web |title=မော်ကွန်းတင်ပြီးမိတ္တူ |url=http://onlinelibrary.wiley.com/doi/10.1002/2017GL073248/abstract |accessdate=25 June 2018 |archivedate=26 December 2017 |archiveurl=https://web.archive.org/web/20171226014559/http://onlinelibrary.wiley.com/doi/10.1002/2017GL073248/abstract }}</ref>
===မိုးလီဝသနန့် ရာသီဥတု===
{{Main|မိုးလီဝသ|ရာသီဥတု}}
ကမ္ဘာ၏လီထုမာ တရားသီနယ်နိမိတ်မဟိဘဲ၊ အထဲဘက်မှ အပြင်ပကို တဆတ်ဆတ် ပါးလွှာလာယား အပြင်ဘက်အာကာသထဲကိုအရောက်မာ မေးမှိန်လားရေ။ လီထု၏ လေးပုံသုံးပုံစွာ မြီမျက်နှာပြင်မှ ပထမဆုံး ၁၁ ကီလိုမီတာ (၆.၈ မိုင်) အတွင်းမာ ပါဝင်ရေ။ အနိမ့်ဆုံးအလွှာကို ထရိုပိုစဖီးယားဟုခေါ်ရေ။ နီမှလာရေ စွမ်းအင်စွာ ဒေအလွှာကို အပူပီးပြီး လီကို ပြန့်ကားမှုဖြစ်စီရေ။ ဒေသိပ်စွားမှု နည်းသောလီရေ မြင့်တက်လာပြီး အီးမြလို့ သိပ်စွားမှုတိသောလေဖြင့် အစားထိုးလားရေ။ ရလဒ်အနိန်နန့် အပူစွမ်းအင် ဖြန့်ဖြူးခြင်းကတဆင့် လီထုလည်ပတ်မှုကိုဖြစ်စီပနာ [[မိုးလီဝသ]]နန့် [[ရာသီဥတု]]တိကို ဖြစ်ပေါ်စီရေ။<ref name=rahmstorf2003 />
{{multiple image
| align = left
| direction = vertical
| width = 150
| image1 = Dorian 2019-08-30 1618Z.jpg
| caption1 = [[ဟာရီကိန်း ဒိုရီယန်]]ကို ၂၀၁၉ ခုနှစ် သြဂတ်လ ၃၀ ရက်နိမာ [[နိုင်ငံတကာ အာကာသစခန်း]]မှမြင်ရပုံ
| image2 = Image-Ulmus pumila (Ulmus gobicus) in Gobi Desert.jpg
| caption2 = [[ဂိုဘီသဲကန္တာရ]]ဟိ အပင်နန့် တိမ်တိုက်များ
}}
မြီမျက်နှာပြင်သို့ကျရောက်ရေ [[နီရောင်ခြည်စွမ်းအင်]]စွာ လတ္တီကျု့ များလာစွာနန့်တတူ လျော့နည်းလားရေ။ လတ္တီကျု အမြင့်ပိုင်းမာ [[နီရောင်ခြည်]]စွာ မြီမျက်နှာပြင်သို့ ဒေါင့်အနိမ့်ဖြင့် ရောက်ဟိရေ။ ယင်းအတွက်နန့် နီရောင်ခြည်စွာ ပိုပြီးကေထူထပ်သော လီထုကို ဖြတ်သန်းရရေ။ ရလဒ်အဖြစ် ပင်လယ်ရီမျက်နှာပြင်အမြင့်ဟိ ပျမ်းမျှ နှစ်စိုင်အပူချိန်စွာ အီကွေတာမှ လတ္တီကျု ၁ ဒီဂရီလျှင် ၀.၄ စင်တီဂရိတ် (၀.၇ ဖာရင်ဟိုက်) နှုန်းဖြင့် လျော့နည်းလားရေ။<ref name="sadava_heller2006" />
တည်နီရာ၏ ရာသီဥတုတိကို သက်ရောက်စီသော အရာအချက်မာ သမုဒ္ဒရာတိနန့် နီးကပ်မှုဖြစ်တေ။<ref>{{cite book|last1=Rohli|first1=Robert. V.|title=Climatology|last2=Vega|first2=Anthony J.|publisher=Jones & Bartlett Learning|year=2018|isbn=978-1-284-12656-3|edition=fourth|page=49}}</ref> သမုဒ္ဒရာတိနန့် နီးကပ်သောနီရာတိစွာ ပုံမှန်ဆိုလို့ဟိကေ အီးမြရေနွီရာသီနန့် ပူနွေးသောဆောင်းရာသီများ ဟိတတ်ကတ်ရေ။ အကြောင်းမာ သမုဒ္ဒရာတိစွာ အပူပမာဏကို ပိုပြီးကေလှောင်နှိုင်ရေကြောင့် ဖြစ်တေ။ သမုဒ္ဒရာတိ၏ အပူဓာတ် တနည်း အအီးဓာတ်ကို လီထခြင်းနန့် ကုန်းမြီသို့ ပို့ဆောင်ပီးရေ။<ref>{{cite book|last1=Rohli|first1=Robert. V.|title=Climatology|last2=Vega|first2=Anthony J.|publisher=Jones & Bartlett Learning|year=2018|isbn=978-1-284-12656-3|edition=fourth|page=32}}</ref>
ရီငွိတိစွာ မြီမျက်နှာပြင်ဟိ အငွီ့ပျံခြင်းကတဆင့် လီထုထဲကို လှည့်လည်ကတ်တေ။ လီထုအခြီအနီစွာ ပူနွေးစိုထိုင်းပါက ရေစွာ စုဖွဲ့ပြီးကေ မိုးရွာသွန်းခြင်းအဖြစ် မြီပြင်ထက်တို့ ပြန်ပနာကျရောက်ရေ။<ref name="moran2005" /> ယင်းခါ ရေအများစုစွာ အနိမ့်ပိုင်းသို့ မြစ်ချောင်းတိကတဆင့် သမုဒ္ဒရာများ တနည်း ရီကန်တိသို့ ပြန်ပနာရောက်ဟိလားရေ။ ဒေရီသံသရာရေ မြီပြင်ပေါ်ဟိ သက်ဟိတိအတွက် မဟိမဖြစ် အရေးပါသော ယန္တရားဖြစ်တေ။ မိုးရွာရေပုံစံစွာ တနှစ်လျှင် မီစွာတိစွာမှ မီလီမီတာအောက်အထိ ကျယ်ပြန့်စွာ ခြားနားကတ်တေ။ လီထုလည်ပတ်မှု၊ ပထဝီဝင် သွင်ပြင်တိနန့် အပူချိန်ကွဲပြားခြားနားချက်တိစွာ ဒေသတခု၏ ပျမ်းမျှ မိုးရွာသွန်းနှုန်းကို အဆုံးအဖြတ်ပီးရေ။<ref name="hydrologic_cycle" />
အသုံးများသော [[ကော့(ခ်)ပန်ရာသီဥတုခွဲခြားမှုတိ|ကော့ပန် ရာသီဥတုခွဲမှုစနစ်]]မာ အုပ်စု ၅ ခုပါဝင်ဗျယ်ဒေး အပူပိုင်း ရာသီဥတု၊ ခြောက်သွိ ရာသီဥတု၊ သမပိုင်း ရာသီဥတု၊ တိုက်ကတ်ီး ရာသီဥတုနန့် ဝင်ရိုးစွန်း ရာသီဥတုဆိုပနာ ဖြစ်ကတ်တေ။ ယင်းအုပ်စု ၅ ခုကိုလေ့ ပိုပြီးကေတိကျသော ရာသီဥတု အမျိုးအစားခွဲတိအဖြစ် ထပ်မံခွဲခြားသိရေ။<ref name="berger2002" /> ကော့ပန် ရာသီဥတုခွဲမှုစနစ်စွာ အပူချိန်နန့် မိုးရွာသွန်းနှုန်းအပေါ် အခြီခံပနာ နယ်မြီဒေသတိကို ခွဲခြားပီးရေ။<ref>{{cite book|last1=Rohli|first1=Robert. V.|title=Climatology|last2=Vega|first2=Anthony J.|publisher=Jones & Bartlett Learning|year=2018|isbn=978-1-284-12656-3|edition=fourth|page=159}}</ref> ပူပြင်းသော ကန္တာရများမာ မျက်နှာပြင် လေအပူချိန်စွာ ၅၅ ဒီဂရီ စင်တီဂရိတ် (၁၃၁ ဖာရင်ဟိုက်) အထိ မြင့်တက်နှိုင်ဗျာယ်း [[အန္တာတိက]]ဒေသမာ အနုတ် ၈၉ ဒီဂရီ စင်တီဂရိတ် (−၁၂၈ ဖာရင်ဟိုက်) အထိ ကျဆင်းနှိုင်ရေ။<ref>{{Cite journal|last1=El Fadli|first1=Khalid I.|last2=Cerveny|first2=Randall S.|last3=Burt|first3=Christopher C.|last4=Eden|first4=Philip|last5=Parker|first5=David|last6=Brunet|first6=Manola|last7=Peterson|first7=Thomas C.|last8=Mordacchini|first8=Gianpaolo|last9=Pelino|first9=Vinicio|last10=Bessemoulin|first10=Pierre|last11=Stella|first11=José Luis|date=2013|title=World Meteorological Organization Assessment of the Purported World Record 58°C Temperature Extreme at El Azizia, Libya (13 September 1922)|url=https://archive.org/details/bulletin-of-the-american-meteorological-society_2013-02_94_2/page/199|journal=Bulletin of the American Meteorological Society|language=en|volume=94|issue=2|pages=199–204|doi=10.1175/BAMS-D-12-00093.1|bibcode=2013BAMS...94..199E|issn=0003-0007|doi-access=free}}</ref><ref>{{Cite journal|last1=Turner|first1=John|last2=Anderson|first2=Phil|last3=Lachlan‐Cope|first3=Tom|last4=Colwell|first4=Steve|last5=Phillips|first5=Tony|last6=Kirchgaessner|first6=Amélie|last7=Marshall|first7=Gareth J.|last8=King|first8=John C.|last9=Bracegirdle|first9=Tom|last10=Vaughan|first10=David G.|last11=Lagun|first11=Victor|date=2009|title=Record low surface air temperature at Vostok station, Antarctica|journal=Journal of Geophysical Research: Atmospheres|language=en|volume=114|issue=D24|page=D24102|doi=10.1029/2009JD012104|bibcode=2009JGRD..11424102T|issn=2156-2202|doi-access=free}}</ref>
===အပေါ်ပိုင်း လီထု===
[[ထရိုပိုစဖီးယား အလွှာ]]၏အပေါ်ဟိ လီထုကို [[စထရာတိုစဖီးယား အလွှာ]]၊ မီဆိုစဖီးယား အလွှာနန့် သာမိုစဖီးယား အလွှာဆိုပနာ ပိုင်းခြာထားရေ။<ref name="atmosphere" /> အလွှာတခုချင်းစီမာ အမြင့်အလိုက် အပူချိန်ခြားနားမှု ဟိကတ်တေ။ ယင်း၏အလွန်မာ အက်ဇိုစဖီးယား (exosphere) စွာ ပါးလွာသော မဂ္ဂနတိုစဖီးယား (magnetosphere) အဖြစ်သို့ ရောက်ဟိလားရေ။ ယင်းနယ်မြီမာ ဘူမိသံလိုက်စက်ကွင်းတိစွာ နီလေတိနန့် အပြန်အလှန်အကျိုးသက်ရောက်ကတ်တေ။<ref name=sciweek2004 /> စထရာတိုစဖီးယားလွှာအထဲ [[အိုဇုန်းလွှာ]]တည်ဟိပြီး ကမ္ဘာမြေဟိ သက်ဟိတိအတွက် အရေးပါကာ ခရမ်းလွန်ရောင်ခြည်၏ အန္တရာယ်မှ ကာကွယ်ပီးရေ။ ကမ္ဘာ့မျက်နှာပြင်မှ {{Convert|100|km|mi|abbr=on}} အကွာအဝီးကို လီထုနန့် [[အပြင်ဘက် အာကာသ]]ဟု သတ်မှတ်ထားရေ။<ref name=cordoba2004 />
==ပတ်လမ်းနန့် လည်ပတ်ခြင်း==
===လည်ပတ်ခြင်း===
[[File:EpicEarth-Globespin(2016May29).gif|thumb|right|ကမ္ဘာလည်ပတ်နီပုံအား [[:en:Deep Space Climate Observatory|DSCOVR EPIC]] မှ ၂၀၁၆ ခုနှစ် မေလ ၂၉ ရက်နိမာ ရိုက်ကူးထားပုံ။]]
ကမ္ဘာစွာ နေကို တူရူပြုပနာ ကိုယ့်ဝင်ရိုးထက်မာ ၂၄ နာရီ (၈၆၄၀၀ စက္ကန့်) လျှင် တခေါက်လည်ပတ်ပြီး အရာဝီးကွာသောကြယ်တိကို တူရူပြုကေ ၂၃ နာရီ ၅၆ မိနစ် ၄ စက္ကန့်လျင် တခေါက်နှုန်း လည်ပတ်ရေ။<ref name="IERS" /><ref group="n" name="Aoki" /> ကမ္ဘာ၏ လည်ပတ်နှုန်းစွာ အချိန်ကြာလာရေနန့်တတူ ကြာလာရေ။ အတိတ်ကာလတိ၏ တရက်စွာရေ ဒေနိခေတ်ထက် ပိုပြီးကေတိုတောင်းခရေ။ ယင်းပိုင်ဖြစ်ရခြင်းကာ ကမ္ဘာနန့် လကမ္ဘာကြားဟိ ဖြားကျိုးသက်ရောက်မှု (tidal effect) ကြောင့် ဖြစ်တေ။ ကမ္ဘာမြေ၏ လည်ပတ်နှုန်းစွာ ၁၉ ရာစုနှစ်နန့်စာကေ ပိုပြီးကေရှည်ကြာယား ဂုချိန်ခါ ရက်တိုင်းမာ ၀ မှ ၂ မီလီစက္ကန့်ကြား ပြောင်းလဲဗျာယ်ဟိရေ။<ref name=USNO_TSD/><ref>{{cite journal |title=Rapid Service/Prediction of Earth Orientation |journal=IERS Bulletin-A |date=9 April 2015 |volume=28 |issue=15 |url=http://maia.usno.navy.mil/ser7/ser7.dat |accessdate=12 April 2015 |format=.DAT file (displays as plaintext in browser) |archive-date=14 March 2015 |access-date=25 June 2018 |archive-url=https://web.archive.org/web/20150314182157/http://maia.usno.navy.mil/ser7/ser7.dat |url-status=dead }} {{Cite web |title=မော်ကွန်းတင်ပြီးမိတ္တူ |url=http://maia.usno.navy.mil/ser7/ser7.dat |access-date=25 June 2018 |archive-date=14 March 2015 |archive-url=https://web.archive.org/web/20150314182157/http://maia.usno.navy.mil/ser7/ser7.dat }} {{Cite web |title=မော်ကွန်းတင်ပြီးမိတ္တူ |url=http://maia.usno.navy.mil/ser7/ser7.dat |accessdate=25 June 2018 |archivedate=14 March 2015 |archiveurl=https://web.archive.org/web/20150314182157/http://maia.usno.navy.mil/ser7/ser7.dat }}</ref>
===ပတ်လမ်း===
[[File:PIA23645-Earth-PaleBlueDot-6Bkm-Voyager1-orig19900214-upd20200212.jpg|thumb|upright|''[[ဗွိုင်ယေဂျာ ၁]]'' အာကာသယာဉ်က မိုင်ပေါင်း ၄ ဘီလီယံ နီးပါးခန့် အကွာအဝီးမှ ရိုက်ကူးထားရေ ''[[အပြာဖျော့အစက်]]'' နာမည်ရ ကမ္ဘာဂြိုဟ်ဖြစ်တေ၊ [[အလင်းအလျင်]]ဖြင့်ဆိုခကေ ၅.၆ နာရီ ခရီးကွာဝီးရေ။<ref name="NASA-20200212">{{cite news |author=Staff |title=Pale Blue Dot Revisited |url=https://photojournal.jpl.nasa.gov/catalog/PIA23645 |date=12 February 2020 |work=[[NASA]] |access-date=12 February 2020 |accessdate=22 November 2021 |archivedate=12 February 2020 |archiveurl=https://web.archive.org/web/20200212230826/https://photojournal.jpl.nasa.gov/catalog/PIA23645 }}</ref>]]
ကမ္ဘာစွာ နေကိုဗဟိုပြုပနာ ပျမ်းမျှ ကီလိုမီတာ ၁၅၀ မီလီယံ (၉၃ မီလီယံမိုင်) အကွာအဝီးမှ လှည့်ပတ်ဗျာယ်ဟိကာ ကိုယ့်ဝင်ရိုးထက်မာ ၁ ပတ် လှည့်ပတ်မိရန် ပျမ်းမျှ ၂၄ နာရီ ကြာမြင့်ရေ။ ကမ္ဘာ၏ ပတ်လမ်းအပြင်းနှုန်းစွာ တစက္ကန့်လျင် ၂၉.၇၈ ကီလိုမီတာ (တနာရီလျင် မိုင်ပေါင်း ၆၆၆၀၀) နှုန်းဖြစ်တေ။ ယင်းအပြင်းနှုန်းဖြင့် ကမ္ဘာ၏ အချင်း ၁၂၇၄၂ ကီလိုမီတာ (၇၉၁၈ မိုင်) အား ၇ မိနစ်အထဲ၊ ၃၈၄၀၀၀ ကီလိုမီတာ (၂၃၉၀၀၀ မိုင်) ကွာဝီးသော လကမ္ဘာသို့ ၃.၅ နာရီရို့နန့် ခရီးပေါက်နှိုင်ရေ။<ref name="earth_fact_sheet" />
ကမ္ဘာ၏ ဒြပ်ဆွဲငင်အား လွှမ်းမိုးသောနယ်မြီကို ဟေးလ်စဖီးယား (Hill sphere) ဟုခေါ်ပြီးကေ အချင်းဝက်အားဖြင့် ၉၃၀,၀၀၀ မိုင် (၁.၅ မီလီယံ ကီလိုမီတာ) ဟိရေ။<ref name="vazquez_etal2006" /><ref group="n" name="hill_radius" /> ယင်းစွာ အရာပိုပြီးကေဝီးကွာသော နေနန့် ဂြိုဟ်တိ၏ ဒြပ်ဆွဲငင်အားထက် ကမ္ဘာ၏ဒြပ်ဆွဲငင်အားက ပိုပြီးကေအားပြင်းနှိုင်ရေ အများဆုံးအကွာအဝီး ဖြစ်တေ။ အရာဝထုတိစွာ ဒေအချင်းဝက်အထဲ လည်ပတ်ရဖို့ဖြစ်တေ။ ယပိုင်မဟုတ်ခကေ နီ၏ ဒြပ်ဆွဲငင်အားနန့် သက်ဆိုင်လားမေဖြစ်တေ။<ref name="vazquez_etal2006" />
ကမ္ဘာစွာ နီအဖွဲ့အစည်းနန့်အတူ [[နဂါးငွီ့တန်း ဂလက်ဆီ]]မာ တည်ဟိပြီး ဗဟိုမှ [[အလင်းနှစ်]] ၂၈၀၀ ကွာဝီးရေ။ ယင်းစွာ [[အိုရိုင်ယွန် လက်မောင်း]]ဟိ ဂလက်တပြင်ညီ (galactic plane) ၏ အလင်းနှစ် ၂၀ ခန့်မာ တည်ဟိရေ။<ref name="nasa20051201" />
==ကမ္ဘာ-ဂြိုဟ်ရံလ စနစ်==
===လကမ္ဘာ===
{{Main|လကမ္ဘာ}}
{| class="wikitable" style="float: right; margin-left: 0.5em;"
|+ ဂုဏ်သတ္တိများ
|-
| colspan=2 | [[File:FullMoon2010.jpg|center|200px|လပြည့်ဝန်းအား [[မြောက်ကမ္ဘာခြမ်း]]မှ မြင်ရပုံ]]
|-
| '''အချင်း''' || {{val|3474.8|u=km|fmt=commas}}
|-
| '''ထုထည်''' || {{val|7.349|e=22|u=kg}}
|-
| '''ဆီမီးမေဂျာ ဝင်ရိုး''' || {{val|384400|u=km|fmt=commas}}
|-
| '''ပတ်လမ်းကာလ''' || {{nowrap|27{{smallsup|d}} 7{{smallsup|h}} 43.7{{smallsup|m}}}}
|}
လကမ္ဘာ၏ မူလဇာတ်မြစ်နန့်ပတ်သက်ပနာ လူအများစု လက်ခံထားရေ သီအိုရီအရ ''သီယာ''ဟုခေါ်သော [[အင်္ဂါဂြိုဟ်]]အရွယ် ဂြိုဟ်ပေါက်စတစင်းနန့် အစောပိုင်းကာလ ကမ္ဘာရို့ ထိတိုက်မိရာမှ ပေါက်ဖွားလာရေဟုဆိုရေ။<ref name=nature412_708/> ကမ္ဘာမာ ဂြိုဟ်ရံလတစင်း ဟိပြီးး ယင်းစွာ ကမ္ဘ့ာအချင်း၏ တစ်ပွာအာဒီခန့် အရွယ်အစားဟိရေ။ [[ဂြိုဟ်သိမ်]] ''[[ပလူတို]]''၏ ဂြိုဟ်ရံလတစင်းဖြစ်ရေ [[ချာရွန် (ဂြိုဟ်ရံလ)|''ချာရွန်'']]စွာ မိခင်ဂြိုဟ်၏ အရွယ်အစားနန့်နှိုင်းနိူင်းပါက ပိုပြီးကေကြီးမားရေ်လည်း<ref>{{cite web|url=https://astronomy.com/news/2019/06/whats-so-special-about-our-moon-anyway|title=What's so special about our Moon, anyway?|work=[[:en:Astronomy (magazine)|Astronomy]]|last1=Klemetti|first1=Erik|date=17 June 2019|access-date=13 October 2020|accessdate=22 November 2021|archivedate=6 November 2020|archiveurl=https://web.archive.org/web/20201106063032/https://astronomy.com/news/2019/06/whats-so-special-about-our-moon-anyway}}</ref><ref>{{cite web|url=https://solarsystem.nasa.gov/moons/pluto-moons/charon/in-depth/#:~:text=At%20half%20the%20size%20of,phenomenon%20called%20mutual%20tidal%20locking.|title=Charon|website=NASA|date=19 December 2019|access-date=13 October 2020|accessdate=22 November 2021|archivedate=14 October 2020|archiveurl=https://web.archive.org/web/20201014164907/https://solarsystem.nasa.gov/moons/pluto-moons/charon/in-depth/#:~:text=At%20half%20the%20size%20of,phenomenon%20called%20mutual%20tidal%20locking.}}</ref> အရာဂြိုဟ်တိ၏ ဂြိုဟ်ရံလတိကိုလည်း ကမ္ဘာ၏ လကမ္ဘာပိုင်ပင် "ဂြိုဟ်ရံလများ" ("moons") ဟု ရည်ညွှန်းရေ။<ref>{{cite web|url=https://theconversation.com/curious-kids-why-is-the-moon-called-the-moon-127899|title=Curious Kids: Why is the moon called the moon?|website=The Conversation|last1=Brown|first1=Toby|date=2 December 2019|access-date=13 October 2020|accessdate=22 November 2021|archivedate=8 November 2020|archiveurl=https://web.archive.org/web/20201108044000/https://theconversation.com/curious-kids-why-is-the-moon-called-the-moon-127899}}</ref> လကမ္ဘာစွာ မိခင်ဂြိုဟ်၏ အရွယ်အစားဖြင့် နှိုင်းနိူင်းပါက နီအဖွဲ့အစည်းမာ အကြီးဆုံး လတစင်းဖြစ်တေ။ ကမ္ဘာနန့် လကမ္ဘာကြားဟိ [[ဒြပ်ဆွဲအား]]စွာ ကမ္ဘာပေါ်မာ ဖြားရီတိကို ဖြစ်ပေါ်စီရေ။<ref>{{Cite journal|last1=Coughenour|first1=Christopher L.|last2=Archer|first2=Allen W.|last3=Lacovara|first3=Kenneth J.|author-link3=Kenneth Lacovara|date=2009|title=Tides, tidalites, and secular changes in the Earth–Moon system|url=http://www.sciencedirect.com/science/article/pii/S0012825209001445|journal=Earth-Science Reviews|language=en|volume=97|issue=1|pages=59–79|doi=10.1016/j.earscirev.2009.09.002|bibcode=2009ESRv...97...59C|issn=0012-8252}} {{Cite web |title=မော်ကွန်းတင်ပြီးမိတ္တူ |url=http://www.sciencedirect.com/science/article/pii/S0012825209001445 |accessdate=22 November 2021 |archivedate=28 October 2012 |archiveurl=https://web.archive.org/web/20121028000947/http://www.sciencedirect.com/science/article/pii/S0012825209001445 }}</ref> လကမ္ဘာပေါ်မာလည်း ဖြားရီ အလုံပိတ် (tidal locking) အကျိုးသက်ရောက်မှုကို ဖြစ်စီပြီး ယင်း၏ လည်ပတ်နှုန်းစွာ ကမ္ဘာအား လှည့်ပတ်မှုနန့် ထပ်တူကျစီရေ။ ရလဒ်အဖြစ် လ၏ မျက်နှာပြင်တခြမ်းစွာ ကမ္ဘာသို့ အမြဲတမ်း မျက်နှာမူဗျာယ်ဟိရေ။<ref>{{Cite news|last=Kelley|first=Peter|date=17 August 2017|title=Tidally locked exoplanets may be more common than previously thought|url=https://www.washington.edu/news/2017/08/14/tidally-locked-exoplanets-may-be-more-common-than-previously-thought/|access-date=8 October 2020|newspaper=Uw News|language=en|accessdate=22 November 2021|archivedate=9 October 2020|archiveurl=https://web.archive.org/web/20201009192401/https://www.washington.edu/news/2017/08/14/tidally-locked-exoplanets-may-be-more-common-than-previously-thought/}}</ref> လကမ္ဘာစွာ ကမ္ဘာအားလည်ပတ်နိန်ရေကြောင့် လကမ္ဘာ၏ မတူညီရေမျက်နှာပြင်တိကို နီရောင်ထိုးရေအခါ လဆန်းခြင်း၊ လကွယ်ခြင်းတိကို ဖြစ်စီရေ။<ref>{{Cite web|title=Lunar Phases and Eclipses {{!}} Earth's Moon|url=https://solarsystem.nasa.gov/moons/earths-moon/lunar-phases-and-eclipses|access-date=8 October 2020|website=NASA Solar System Exploration|accessdate=22 November 2021|archivedate=16 October 2020|archiveurl=https://web.archive.org/web/20201016180007/https://solarsystem.nasa.gov/moons/earths-moon/lunar-phases-and-eclipses/}}</ref>
ကမ္ဘာနန့်လရို့ကြား အပြန်အလှန် ဖြားကျိုးသက်ရောက်မှုကြောင့် လစွာ တနှစ်လျှင် ၁.၅ လက်မခန့် ကမ္ဘာနန့် ဝီးကွာဗျာယ်ဟိရေ။ လစွာ ကမ္ဘာ၏ ကိုယ့်ဝင်ရိုးထက်မာ တိမ်းစောင်းဗျာယ် လည်ပတ်သောဖြစ်စိုင်အား တိုင်းစီရေ။ ကမ္ဘာမှ ကြည့်ကေ လကမ္ဘာကို နီ၏အရွယ်အစားပိုင်ပင် မြင်ရရေ။ ဧချင့်ပိုင်ဖြစ်ရခြင်းကာ နီ၏အချင်းစွာ လကမ္ဘာထက် အဆပေါင်း ၄၀၀ ပိုကြီးရေ်လည်း အကွာဝီးမာ အဆပေါင်း ၄၀၀ ပိုပြီးကေဝီးကွာအတွက်နန့်ဖြစ်တေ။<ref name=angular /> ယင်းစွာ နှစ်စိုင်နန့် နေအပြည့်ကြတ်ခြင်းကို ကမ္ဘာပေါ်မာ ဖြစ်စီရေ။<ref>{{cite web|url=https://blogs.scientificamerican.com/life-unbounded/the-solar-eclipse-coincidence/|title=The Solar Eclipse Coincidence|work=Scientific American|last1=Sharf|first1=Caleb A.|date=18 May 2012|access-date=13 October 2020|author1-link=Caleb Scharf|accessdate=22 November 2021|archivedate=15 October 2020|archiveurl=https://web.archive.org/web/20201015083529/https://blogs.scientificamerican.com/life-unbounded/the-solar-eclipse-coincidence/}}</ref>
လကမ္ဘာစွာ ကမ္ဘာ၏ ရာသီဥတုကို ထိန်းကျောင်းခြင်းနန့် ကမ္ဘာပေါ်ဟိ သက်ဟိများ ဖြစ်ထွန်းမှုကို အထောက်အကူပြုခကောင်းပြုခနှိုင်ရေ။ [[နိခါတကဗေဒ|ကျောက်ဖြစ်ရုပ်ကြွင်း]] သက်သီတိနန့် ကွန်ပျူတာဖြင့် ပုံတူဖန်တီးမှန်းဆချက် (computer simulation) တိက ကမ္ဘာ၏ ကိုယ့်ဝင်ရိုးပေါ်တိမ်းစောင်းမှုစွာ လကမ္ဘာနန့်အပြန်အလှန်ဆက်နွယ်မှုကြောင့် တိုင်းရေလို့ ပြသနိန်ရေ။ အချို့ သီအိုရီအဆိုရှင်တိက လကမ္ဘာမဟိပါက ကမ္ဘာ၏ ကိုယ့်ဝင်ရိုးပေါ်တိမ်းစောင်းလည်ပတ်မှုစွာ အင်္ဂါဂြိဟ်၏ ဂြိုဟ်ရံလ ဖြစ်ရပ်ပိုင် ကမောက်ကမဖြစ်ကာ မတိုင်းမှု ဖြစ်လားနှိုင်ရေဟုဆိုရေ။ ယကေလေ့သော့ ယင်းအား အပြန်အလှန် ငြင်းခုံနိန်ကတ်တုန်းဖြစ်တေ။<ref>{{cite web|url=https://phys.org/news/2015-01-earth-moon-critical-life.html#:~:text=Lissauer's%20team%20found%20that%20without,day%20angle%20of%2023.5%20degrees.|title=Earth's moon may not be critical to life|work=Phys.org|last1=Cooper|first1=Keith|date=27 January 2015|access-date=26 October 2020|accessdate=22 November 2021|archivedate=30 October 2020|archiveurl=https://web.archive.org/web/20201030120857/https://phys.org/news/2015-01-earth-moon-critical-life.html#:~:text=Lissauer's%20team%20found%20that%20without,day%20angle%20of%2023.5%20degrees.}}</ref><ref>{{cite journal|url=http://web.mit.edu/perron/www/files/Daradich08.pdf|title=Equilibrium rotational stability and figure of Mars|journal=Icarus|last1=Dadarich|first1=Amy|first2=Jerry X.|last2=Mitrovica|author-link2=Jerry X. Mitrovica|first3=Isamu|last3=Matsuyama|first4=J. Taylor|last4=Perron|first5=Michael|last5=Manga|author-link5=Michael Manga|first6=Mark A.|last6=Richards|date=22 November 2007|volume=194|issue=2|pages=463–75|access-date=26 October 2020|doi=10.1016/j.icarus.2007.10.017|archive-date=1 December 2020|archive-url=https://web.archive.org/web/20201201094104/http://web.mit.edu/perron/www/files/Daradich08.pdf|url-status=dead}} {{Cite web |title=မော်ကွန်းတင်ပြီးမိတ္တူ |url=http://web.mit.edu/perron/www/files/Daradich08.pdf |access-date=22 November 2021 |archive-date=1 December 2020 |archive-url=https://web.archive.org/web/20201201094104/http://web.mit.edu/perron/www/files/Daradich08.pdf }} {{Cite web |title=မော်ကွန်းတင်ပြီးမိတ္တူ |url=http://web.mit.edu/perron/www/files/Daradich08.pdf |accessdate=22 November 2021 |archivedate=1 December 2020 |archiveurl=https://web.archive.org/web/20201201094104/http://web.mit.edu/perron/www/files/Daradich08.pdf }}</ref>
===လူလုပ် ဂြိုဟ်တုတိ===
၂၀၂၀ ပြည့်နှစ် ဧပြီလမာ ကမ္ဘာပတ်လမ်းထဲမာ အလုပ်ဖြစ်နီဆဲ လူလုပ် [[ဂြိုဟ်တု|ဂြိုဟ်တု]]များ ၂,၆၆၆ ခု ဟိရေ။<ref name="ucs" /> ယင်းရို့မာ လုပ်ငန်းဆောင်ရွက်နိုင်ခြင်း မဟိတော့ရေ ဂြိုဟ်တုတိလေ့ ပါဝင်ဗျယ်ဒေး နောက်ယောင်ခံလိုက်ထားရေ အာကာသ အမှိုက် (Space debris) ၁၆,၀၀၀ ခုကျော် ဟိရေ။<ref group="n" name="space_debris" /> ကမ္ဘာ၏ အကြီးဆုံး လူလုပ် ဂြိုဟ်တုမာ [[နိုင်ငံတကာ အာကာသ စခန်း]]ဖြစ်တေ။<ref>{{Cite book|last1=Welch|first1=Rosanne|url=https://books.google.com/books?id=aWGHDwAAQBAJ&q=largest+artificial+satellite&pg=RA2-PA126|title=Technical Innovation in American History: An Encyclopedia of Science and Technology [3 volumes]|last2=Lamphier|first2=Peg A.|year=2019|publisher=ABC-CLIO|isbn=978-1-61069-094-2|page=126|language=en|access-date=23 November 2021|archive-date=14 February 2021|archive-url=https://web.archive.org/web/20210214004816/https://books.google.com/books?id=aWGHDwAAQBAJ&q=largest+artificial+satellite&pg=RA2-PA126|url-status=live}}</ref>
==ကမ္ဘာပေါ်ဟိ သက်ဟိ==
{{Main|သက်ဟိ}}
[[File:Mycena interrupta.jpg|thumb|[[မှို|မှိုများ]]စွာ ကမ္ဘာပေါ်ဟိ သက်ဟိတမျိုးဖြစ်တေ။]]
ဂြိုဟ်တခု၏ သက်ဟိပုံစံတိစွာ [[ဂေဟစနစ်]]မာ နီထိုင်ကတ်ပြီး ယင်း၏ပုံစံအားလုံးကို ဇီဝလွှာ (biosphere) ဟု ခေါ်ဆိုရေ။<ref>{{cite web|url=https://www.nationalgeographic.org/encyclopedia/biosphere/|title=Biosphere|first1=Kim|last1=Rutledge|first2=Tara|last2=Ramroop|first3=Diane|last3=Boudreau|first4=Melissa|last4=McDaniel|first5=Santani|last5=Teng|first6=Erin|last6=Sprout|first7=Hilary|last7=Costa|first8=Hilary|last8=Hall|first9=Jeff|last9=Hunt|date=24 June 2011|work=National Geographic|access-date=1 November 2020|accessdate=23 November 2021|archivedate=3 November 2020|archiveurl=https://web.archive.org/web/20201103222045/https://www.nationalgeographic.org/encyclopedia/biosphere/}}</ref> ဇီဝလွှာကို ဇီဝအစုအဖွဲ့ (biomes) အဖြစ် ပိုင်းခြားပြီး အပင်နန့် တိရစ္ဆာန်များ နီထိုင်ကတ်ရေ။<ref>{{cite web |url=https://www.bbc.com/bitesize/guides/zmyj6sg/revision/3 |title=Interdependency between animal and plant species |page=3 |work=BBC Bitesize |publisher=[[BBC]] |access-date=28 June 2019 |accessdate=23 November 2021 |archivedate=27 June 2019 |archiveurl=https://web.archive.org/web/20190627225057/https://www.bbc.com/bitesize/guides/zmyj6sg/revision/3 }}</ref> မြီပြင်ထက်မာ ဇီဝအစုအဖွဲ့တိကို အဓိကကတော့ခါ ပင်လယ်ရီမျက်နှာပြင်အမြင့်နန့် စိုထိုင်းဆရို့နန့် ပိုင်းခြာထားရေ။ ကုန်းနီ ဇီဝအစုအဖွဲ့တိစွာ အာတိတ် တနည်း အာတိတ်စက်ဝိုင်းအထဲ တည်ဟိကတ်တေ။ မြင့်မားသောနီရာများ တနည်း [[ကန္တာရ|တော်သင့်ရုံခြောက်သွိသောဒေသ]]များမာ အပင်နန့် တိရစ္ဆာန်များ ကင်းမဲ့ကတ်တေ။ မျိုးစိတ် မူကွဲရေ စိုထိုင်းသောအနိမ့်ပိုင်းဒေသ အီကွေတာမာ အများဆုံး ဖြစ်ထွန်းရေ။<ref name="amnat163_2_192" /> ဒေနိ ကမ္ဘာပေါ်ဟိ လှောက်မှန်းခြေ မျိုးစိတ်အရွီအတွက်စွာ ပြောင်းလဲနိန်ပြီးကေ မျိုးစိတ်အများစုကတော့ခါ ဖော်ပြခြင်းမဟိသိမ့်ပါ၊၊<ref name="Sweetlove_2011">{{Cite journal |last=Sweetlove |first=L. |date=24 August 2011 |title=Number of species on Earth tagged at 8.7 million |url=https://www.nature.com/news/2011/110823/full/news.2011.498.html |access-date=28 October 2020 |journal=Nature |pages=news.2011.498 |doi=10.1038/news.2011.498 }} {{Cite web |title=မော်ကွန်းတင်ပြီးမိတ္တူ |url=https://www.nature.com/news/2011/110823/full/news.2011.498.html |accessdate=23 November 2021 |archivedate=9 November 2020 |archiveurl=https://web.archive.org/web/20201109060345/https://www.nature.com/news/2011/110823/full/news.2011.498.html }}</ref> ကမ္ဘာထက်မာ ရှင်သန်ကျက်စားခဖူးသော မျိုးစိတ်အားလုံး၏ ၉၉ ရာခိုင်နှုန်းကျော်စွာ [[မျိုးသုဉ်းခြင်း|မျိုးသုဉ်း]]ခပြီးကေဖြစ်တေ။<ref name="NYT-20141108">{{cite news|last=Novacek|first=Michael J.|date=8 November 2014|title=Prehistory's Brilliant Future|work=[[The New York Times]]|url=https://www.nytimes.com/2014/11/09/opinion/sunday/prehistorys-brilliant-future.html|access-date=1 November 2020|accessdate=24 June 2018|archivedate=29 December 2014|archiveurl=https://web.archive.org/web/20141229225657/http://www.nytimes.com/2014/11/09/opinion/sunday/prehistorys-brilliant-future.html}}</ref><ref name="Jablonski2004">{{cite journal|last=Jablonski|first=David|author-link1=David Jablonski|year=2004|title=Extinction: past and present|url=https://archive.org/details/sim_nature-uk_2004-02-12_427_6975/page/588|journal=Nature|volume=427|issue=6975|page=589|bibcode=2004Natur.427..589J|doi=10.1038/427589a|pmid=14961099|s2cid=4412106}}</ref>
နီမှ ကမ္ဘာသို့ အကွာအဝီး၊ ဂြိုဟ်ပတ်လမ်းကြောင်း ဗဟိုကျမှု၊ လှည့်ပတ်နှုန်း၊ ဝင်ရိုးထက်မာ တိမ်းစောင်းမှု၊ ပထဝီဝင်ဆိုင်ရာ ရာဇဝင်၊ ရေရှည်တည်တံ့သော လီထုနန့် [[သံလိုက်စက်ကွင်း]] အစဟိရေ အားလုံးသော ရာသီဥတုအခြီနီတိစွာ မြီမျက်နှာပြင်ထက်မာ အကျိုးသက်ရောက်ဗျာယ်ဟိရေ။<ref name="dole1970" /> ကမ္ဘာစွာ အရည်အဖြစ်တည်ဟိရေ ရေကို ထောက်ပံ့ပီးရား ယင်းစွာ သပွတ်အူလိုက် အော်ဂဲနစ် မော်လီကျူးများ ဖြစ်တည်လှာစီရန်၊ ဇီဝကမ္မဖြစ်စဉ်တိအတွက် လိုအပ်ရေစွမ်းအင်ကို အလုံအလောက် ထောက်ပံ့ပီးရေ။ အပင်တိစွာ လီထု၊ မြီဆီလွှာနန့် ရေမှ အာဟာရဓာတ်ကို ယူသုံးနှိုင်ကတ်ရေ။ ယင်းအာဟာရဓာတ်တိစွာ မတူညီရေမျိုးစိတ်တိကြားမာ သံသရာလည်ဗျာယ်ဟိရေ။<ref>{{Cite book|last1=Singh|first1=J. S.|author-link1=Jamuna Sharan Singh|last2=Singh|first2=S. P.|author-link2=S. P. Singh (biochemist)|last3=Gupta|first3=S.R.|url=https://www.worldcat.org/oclc/896866658|title=Ecology environmental science and conservation|publisher=S. Chand & Company|year=2013|isbn=978-93-83746-00-2|edition=First|location=New Delhi|oclc=896866658|access-date=23 November 2021|archive-date=31 March 2021|archive-url=https://web.archive.org/web/20210331100347/https://www.worldcat.org/title/ecology-environmental-science-and-conservation/oclc/896866658|url-status=live}}</ref>
ဟာရီကိန်းမုန်တိုင်းတိနန့် [[တိုင်ဖွန်းမုန်တိုင်း]]များအပါအဝင် အပူပိုင်း ဆိုင်ကလုန်းတိကဲ့သို့ ပြင်းထန်သော မိုးလီဝသအခြီအနီတိစွာ ကမ္ဘာမြေ၏ မျက်နှာပြင်တိုင်းမာ ဖြစ်ပေါ်လေ့ဟိပြီးး ယင်းဒေသဟိ သက်ဟိတိအပေါ် ကြီးမားရေအကျိုးသက်ရောက်မှု ဖြစ်ပေါ်စီရေ။ ၁၉၈၀ ခုနှစ်မှ ၂၀၀၀ ပြည့်နှစ်အထိ ယင်းဖြစ်ရပ်တိစွာ တနှစ်လျှင် ပျမ်းမျှလူပေါင်း ၁၁၈၀၀ ဦးကို သီဆုံးစီခရေ။<ref>{{cite book|title=Oceans and Human Health|first1=Sharon|last1=Smith|first2=Lora|last2=Fleming|first3=Helena|last3=Solo-Gabriele|first4=William H.|last4=Gerwick|publisher=Elsevier Science|year= 2011|isbn=978-0-08-087782-2|page=212}}</ref> အရာနီရာများမာ ငလျင်လှုပ်ခြင်း၊ မြေပြိုခြင်း၊ [[ဆူနာမီ|ဆူနာမီဖြစ်ပေါ်ခြင်း]]၊ နဂါးတောင်ပေါက်ကွဲခြင်း၊ ရေလွှမ်းခြင်း၊ မိုးခေါင်ခြင်း၊ [[တောမီး|တောမီးလောင်ခြင်း]]နန့် အရာဖီးအန္တရာယ်များ ကျရောက်ဖို့ ဟိနီရေ။<ref>{{cite book|title=Natural Disasters|last1=Alexander|first1=David|page=3|year=1993|url=https://books.google.com/books?id=wnt0DwAAQBAJ&q=Natural+Disasters&pg=PT11|publisher=Springer Science & Business Media|isbn=978-1-317-93881-1|access-date=23 November 2021|archive-date=31 March 2021|archive-url=https://web.archive.org/web/20210331100420/https://books.google.com/books?id=wnt0DwAAQBAJ&q=Natural+Disasters&pg=PT11|url-status=live}}</ref> လူသားရို့၏ ဆောင်ရွက်ချက်တိကြောင့် တောရိုင်းတိရစ္ဆာန်များ ပျောက်ဆုံးခြင်း၊ မျိုးစိတ်များ [[မျိုးသုဉ်းခြင်း]]၊ မြီဆီလွှာ ခမ်းခြောက်ခြင်း၊ မြေတိုက်စားခြင်းရို့ ဖြစ်ပေါ်ခရေ။<ref>{{cite book|pages=[https://archive.org/details/humanimpactonn00goud/page/52 52], 66, 69, 137, 142, 185, 202, 355, 366|title=The Human Impact on the Natural Environment|url=https://archive.org/details/humanimpactonn00goud|last1=Goudie|first1=Andrew|author-link1=Andrew Goudie (geographer)|year=2000|publisher=MIT Press|isbn=978-0-262-57138-8}}</ref> လူသားရို့၏ အပြုအမူစွာ [[ဖန်လုံအိမ်ဓာတ်ငွိ]]တိကို လီထုထဲကို ရောက်စီပြီး [[ကမ္ဘာကြီး ပူနွီးလာမှု]]ကို ဖြစ်ပေါ်စီခရေ။<ref>{{Cite journal|last1=Cook|first1=John|last2=Oreskes|first2=Naomi|author-link2=Naomi Oreskes|last3=Doran|first3=Peter T.|author-link3=Peter Doran|last4=Anderegg|first4=William R. L.|last5=Verheggen|first5=Bart|last6=Maibach|first6=Edward W.|author-link6=Edward Maibach|last7=Carlton|first7=J. Stuart|last8=Lewandowsky|first8=Stephan|author-link8=Stephan Lewandowsky|last9=Skuce|first9=Andrew G.|last10=Green|first10=Sarah A.|last11=Nuccitelli|first11=Dana|date=2016|title=Consensus on consensus: a synthesis of consensus estimates on human-caused global warming|journal=Environmental Research Letters|language=en|volume=11|issue=4|page=048002|doi=10.1088/1748-9326/11/4/048002|bibcode=2016ERL....11d8002C|issn=1748-9326|doi-access=free}}</ref> ရီခဲလွှာများ အရည်ပျော်ကာ ပင်လယ်ရီမျက်နှာပြင် မြင့်တက်လာမှု၊ မိုးခေါင်ရေရှားခြင်းနန့် တောမီးလောင်မှုအန္တရာယ်ဟိလာခြင်းရို့စွာ မျိုးစိတ်တိကို ပိုပြီးကေအီးမြရေဒေသကို ပြောင်းရွိနီထိုင်ရန် တွန်းအားပီးမှု ဖြစ်လှာစီရေ။<ref name="Global Warming Effects">{{Cite web|date=14 January 2019|title=Global Warming Effects|url=https://www.nationalgeographic.com/environment/global-warming/global-warming-effects/|access-date=16 September 2020|website=National Geographic|language=en|accessdate=23 November 2021|archivedate=2 December 2019|archiveurl=https://web.archive.org/web/20191202114510/https://www.nationalgeographic.com/environment/global-warming/global-warming-effects/}}</ref>
==လူသား ပထဝီဝင်==
{{World map indicating continents}}
[[ကမ္ဘာ့လူဦးရွီ|ကမ္ဘာမြေဟိ လူဦးရွီ]]စွာ ၂၀၁၀ ပြည့်လွန်နှစ်များမာ ၇ ဘီလီယံ ကျော်လားခပြီးကေ<ref>{{cite web|url=https://news.yahoo.com/various-7-billionth-babies-celebrated-worldwide-064439018.html|title=Various '7 billionth' babies celebrated worldwide|date=October 31, 2011|agency=Associated Press|access-date=31 October 2011|url-status=dead|archive-url=https://web.archive.org/web/20111031182613/http://news.yahoo.com/various-7-billionth-babies-celebrated-worldwide-064439018.html|work=Yahoo News|last1=Gomez|first1=Jim|last2=Sullivan|first2=Tim|archive-date=31 October 2011|accessdate=24 November 2021|archivedate=31 October 2011|archiveurl=https://web.archive.org/web/20111031182613/http://news.yahoo.com/various-7-billionth-babies-celebrated-worldwide-064439018.html}}</ref> ၂၁ ရာစု ဒုတိယထက်ဝက်ခန့်မာ အမြင့်ဆုံး ၁၀ ဘီလီယံအထိ ရောက်ဟိဖို့လို့ လှောက်မှန်းထားရေ။<ref name=":1">{{Cite news|last=Harvey|first=Fiona|date=15 July 2020|title=World population in 2100 could be 2 billion below UN forecasts, study suggests|language=en-GB|work=The Guardian|url=https://www.theguardian.com/world/2020/jul/15/world-population-in-2100-could-be-2-billion-below-un-forecasts-study-suggests|access-date=18 September 2020|issn=0261-3077|accessdate=24 November 2021|archivedate=4 September 2020|archiveurl=https://web.archive.org/web/20200904212947/https://www.theguardian.com/world/2020/jul/15/world-population-in-2100-could-be-2-billion-below-un-forecasts-study-suggests}}</ref> လူဦးရွီ တိုးပွားမှု အများဆုံးမာ [[အာဖရိကတိုက်]]မာ ဖြစ်လိမ့်မေဟု မျှော်လင့်ရရေ။<ref name=":1" /> လူဦးရွီ သိပ်စွားဆစွာ ကမ္ဘာတဝှမ်း ကျကျယ်ပြပြန့် ကွဲပြားကတ်ယား အများစုကတော့ခါ [[အာသျှတိုက်]]မာ နီထိုင်ကတ်ရေ။ ၂၀၅၀ ပြည့်နှစ်မာ ကမ္ဘာ့လူဦးရွီ၏ ၆၈ ရာခိုင်နှုန်းစွာ ကျေးလက်ဒေသတိထက် မြို့ပြမာ နီထိုင်ကတ်လိမ့်မေဟု မျှော်မှန်းရရေ။<ref name="OWID_urbanization_2019"/> [[မြောက်ကမ္ဘာလုံးခြမ်း]]မာ ကမ္ဘာ့ကုန်းမြီထုထည်၏ ၆၈ ရာခိုင်နှုန်း ပါဝင်ရေ။<ref>{{Cite web |url=http://phl.upr.edu/library/notes/distributionoflandmassesofthepaleo-earth |title=Distribution of landmasses of the Paleo-Earth |first1=Abel |last1=Méndez |author-link1=Abel Méndez |date=6 July 2011 |publisher=University of Puerto Rico at Arecibo |access-date=5 January 2019 |accessdate=24 November 2021 |archivedate=6 January 2019 |archiveurl=https://web.archive.org/web/20190106010959/http://phl.upr.edu/library/notes/distributionoflandmassesofthepaleo-earth }}</ref> ကုန်းမြီထုထည် များရေအချက်ကြောင့်လည်း ၉၀ ရာခိုင်နှုန်းသော လူသားတိစွာ မြောက်ကမ္ဘာလုံးခြမ်းမာ နီထိုင်ကတ်ရေ။<ref>{{Cite web|url=https://www.businessinsider.com/90-of-people-live-in-the-northern-hemisphere-2012-5|title=MAP OF THE DAY: Pretty Much Everyone Lives In The Northern Hemisphere|date=4 May 2012|work=Business Insider|last1=Lutz|first1=Ashley|access-date=5 January 2019|accessdate=24 November 2021|archivedate=19 January 2018|archiveurl=https://web.archive.org/web/20180119181108/http://www.businessinsider.com/90-of-people-live-in-the-northern-hemisphere-2012-5}}</ref>
ကမ္ဘာ့မျက်နှာပြင်၏ ၈ ပုံ ၁ ပုံစွာ လူသားတိနီထိုင်ရန် သင့်လျော်ရေလို့ လှောက်မှန်းချက်တခုက ဖော်ပြထားရေ။ ကမ္ဘာ့မျက်နှာပြင်၏ ၄ ပုံ ၃ ပုံကိုမူ သမုဒ္ဒရာတိနန့် ဖုံးလွှမ်းထားပြီးသား ကုန်းမြီမာ ၄ ပုံ ၁ ပုံ ဖြစ်တေ။ ယင်းကုန်းမြီဧရိယာ၏ ထက်ဝက်ခန့်စွာ ကန္တာရများ (၁၄ ရာခိုင်နှုန်း)၊<ref name="hessd4_439" /> တောင်တန်းများ (၂၇ ရာခိုင်နှုန်း)<ref name="biodiv" /> တနည်း နီထိုင်ရန် မသင့်လျော်သော ကုန်းမြီများ ဖြစ်ကတ်တေ။ နိုင်ငံတိက [[အန္တာတိကတိုက်]]၏ အစိတ်အပိုင်းတချို့နန့် အရာဧရိယာတချို့လွဲပြီးကေ ဂြိုဟ်တခုလုံး၏ ကုန်းမြီကို ပိုင်ဆိုင်ရေလို့ အခိုင်အမာ ပြောဆိုထားကတ်တေ။<ref>{{cite book|last1=Lloyd|first1=John|author-link1=John Lloyd (producer)|title=The Discretely Plumper Second QI Book of General Ignorance|url=https://archive.org/details/qisecondbookofge0000lloy|last2=Mitchinson|first2=John|author-link2=John Mitchinson (researcher)|publisher=Faber & Faber|year=2010|isbn=978-0-571-29072-7|pages=[https://archive.org/details/qisecondbookofge0000lloy/page/116 116]–117}}</ref> ကမ္ဘာမာ ဂြိုဟ်တခုလုံးကို အုပ်ချုပ်ရေအစိုးရ ဇာအချိန်ကမှ မဟိခဖူးကေလေ့ [[ကုလသမဂ္ဂ|ကမ္ဘာ့ကုလသမဂ္ဂ]]စွာ လက်ဟိမာ ကမ္ဘာတဝှမ်းကို ဦးဆောင်နီရေ နိုင်ငံတကာအစိုးရအဖွဲ့အစည်းဖြစ်တေ။<ref>{{cite book|last1=Smith|first1=Courtney B.|url=https://www.rienner.com/uploads/47d958f8700e6.pdf|title=Politics and Process at the United Nations: The Global Dance|publisher=Lynne Reiner|year=2006|isbn=978-1-58826-323-0|pages=1–4|access-date=24 November 2021|archive-date=17 October 2020|archive-url=https://web.archive.org/web/20201017080431/https://www.rienner.com/uploads/47d958f8700e6.pdf|url-status=live}}</ref>
ကမ္ဘာပတ်လမ်းကြောင်းသို့ ပထမဆုံး ရောက်ဟိသူမာ [[ယူရီဂါဂါရင်]] ဖြစ်ပြီးကေ ၁၉၆၁ ခုနှစ် ဧပြီလ ၁၂ ရက်နိမာ ပျံသန်းရောက်ဟိခခြင်းဖြစ်တေ။<ref name=kuhn2006 /> ၂၀၁၈ ခုနှစ် နိုဗန်ဘာလအထိ လူပေါင်း ၅၅၀ ယောက် အပြင်ဘက် အာကာသသို့ရောက်ဟိပြီး ယင်းရို့ထဲက ၁၂ ယောက်စွာ လကမ္ဘာထက်မာ လမ်းလျှောက်ခကတ်တေ။<ref name=shayler_vis2005 /><ref>{{Cite news|last=Holmes|first=Oliver|date=19 November 2018|title=Space: how far have we gone – and where are we going?|language=en-GB|work=The Guardian|url=https://www.theguardian.com/science/2018/nov/19/space-how-far-have-we-gone-and-where-are-we-going|access-date=10 October 2020|issn=0261-3077|accessdate=24 November 2021|archivedate=6 October 2020|archiveurl=https://web.archive.org/web/20201006041822/https://www.theguardian.com/science/2018/nov/19/space-how-far-have-we-gone-and-where-are-we-going}}</ref> ပုံမှန်ဆိုလို့ဟိကေ လူသားတိ အာကာသထဲမာ ရောက်ဟိစွာဆိုစွာမာ နိုင်ငံတကာ အာကသ စခန်းမာဖြစ်တေ။ အာကာသစခန်းမာ နီထိုင်သော လူ ၆ ဦးစွာ ပုံမှန်ဆိုလို့ဟိကေ ခြောက်လကြာတိုင်း အလဲအလှယ် ပြုလုပ်ကတ်တေ။<ref name=nasa_rg_iss2007 /> လူသားတိ ကမ္ဘာမြေမှ အဝီးဆုံး ခရီးလားခရေ အကွာအဝီးမာ ၁၉၇၀ ခုနှစ် [[အပိုလို ၁၃]] ၏ စီမံကိန်းအထဲဖြစ်ပြီးကေ ၄၀၀,၁၇၁ ကီလိုမီတာ (၂၄၈,၆၅၅ မိုင်) ခရီးလားခရေ။<ref name="Apollo13History" />
{{clear}}
{{multiple image
| align = center
| direction = horizontal
| background color =
| width =
| caption_align = center
| header_background =
| header_align = center
| header = [[ဆင့်ကဲပြောင်းလဲမှု|ကမ္ဘာပေါ်ဟိ သက်ဟိ]]
| image1 = Sabaa Nissan Militiaman.jpg
| width1 = 71
| caption1 = [[လူသား|0.2 Mya<br />လူသားတိ]]
| image2 = Oxalis-pes-caprae-16c-Zachi-Evenor.jpg
| width2 = 110
| caption2 = [[ပန်း|140 Mya<br />ပန်းများ]]
| image3 = Oryctolagus cuniculus Tasmania 2-mirror.jpg
| width3 = 76
| caption3 = [[နို့တိုက်သတ္တဝါ|200 Mya<br />နို့တိုက်သတ္တဝါများ]]
| image4 = AlamosaurusDB.jpg
| width4 = 133
| caption4 = [[ဒိုင်နိုဆော|240 Mya<br />ဒိုင်နိုဆောများ]]
| image5 = Clouds over the Atlantic Ocean.jpg
| width5 = 143
| caption5 = [[အောက်ဆီဂျင်|3500 Mya<br />အောက်ဆီဂျင်]]
| image6 = Halobacteria.jpg
| width6 = 107
| caption6 = [[အဏုဇီဝ|4280 Mya<br />အဏုဇီဝသက်ဟိများ]]
| image7 = Water drop 001.jpg
| width7 = 145
| caption7 = [[ရေ|4410 Mya<br />ရေ]]
| image8 = The Earth seen from Apollo 17.jpg
| width8 = 96
| caption8 = [[ကမ္ဘာ၏ သက်တမ်း|4540 Mya<br />ကမ္ဘာ]]
| footer_background =
| footer_align = center
| footer =
}}
{{clear}}
{{multiple image
| align = center
| direction = horizontal
| background color =
| width =
| caption_align = center
| header_background =
| header_align = center
| header = [[စကြဝဠာ|စကြဝဠာဟိ ကမ္ဘာ၏ တည်နီရာ]]
| image1 = The Earth seen from Apollo 17.jpg
| width1 = 88
| caption1 = [[:en:History of Earth|ကမ္ဘာဂြိုဟ်]]
| image2 = Montagem Sistema Solar.jpg
| width2 = 115
| caption2 = [[နီအဖွဲ့အစည်း]]
| image3 = Rho Ophiuchi.jpg
| width3 = 90
| caption3 = [[ဂေါင်း ခပန်း]]
| image4 = Milky Way Arms ssc2008-10.svg
| width4 = 98
| caption4 = [[အိုရိုင်ယွန် လက်မောင်း]]
| image5 = Artist's impression of the Milky Way (updated - annotated).jpg
| width5 = 88
| caption5 = [[နဂါးငွီ့တန်း ဂလက်ဆီ|နဂါးငွီ့တန်း]]
| image6 = Local Group and nearest galaxies.jpg
| width6 = 120
| caption6 = [[Local Group]]
| image7 = Local supercluster-ly.jpg
| width7 = 93
| caption7 = [[Virgo Supercluster|Virgo SCl]]
| image8 = Observable universe r2.jpg
| width8 = 90
| caption8 = [[Laniakea Supercluster|Laniakea SCl]]
| image9 = Observable Universe with Measurements 01.png
| width9 = 90
| caption9 = [[လိလာနှိုင်ရေ စကြဝဠာ|ကိုယ်ရို့ စကြဝဠာ]]
| footer_background =
| footer_align = center
| footer =
}}
== ဆက်ပနာဖတ်ရှုရန် ==
* [[နီအဖွဲ့အစည်း]]
*[[ကမ္ဘာမြေ သိပ္ပံ]]
==မှတ်စု==
{{reflist |30em |group="n" |refs=
<ref name=radiomatric>ရေဒီယိုမက်ထရစ်ရက်စွဲဖြင့် သက်တမ်းဖော်ထုတ်နည်း (Radiometric dating) ဆိုစွာမာ [[ဓာတုဗေဒ ဒြပ်စင်]]တိ၏ [[အိုင်ဆိုတုပ်]]များ [[လေဒီအိုသတ္တိကြွပြိုကွဲမှု]]ဖြင့် ပြိုကွဲရေအခါ သက်တမ်းဝက် (half life) ဟုခေါ်ရေ သက်တမ်းကိုယ်စီ ဟိကတ်တေ။ ယင်းသက်တမ်းဝက်ရို့ကို့ လိလာခြင်းနန့် ကျောက်သီး၊ ကာဗွန် အစဟိစွာရို့၏ သက်တမ်းကို သိဟိနှိုင်ရေ။</ref>
<ref name=Aoki>The ultimate source of these figures, uses the term "seconds of UT1" instead of "seconds of mean solar time".—{{cite journal |last1=Aoki |first1=S. |title=The new definition of universal time |url=https://archive.org/details/sim_astronomy-and-astrophysics_1982-01_105_2/page/359 |journal=Astronomy and Astrophysics |year=1982 |volume=105 |issue=2 |pages=359–61 |bibcode=1982A&A...105..359A |last2=Kinoshita |first2=H. |last3=Guinot |first3=B. |last4=Kaplan |first4=G. H. |last5=McCarthy |first5=D. D. |last6=Seidelmann |first6=P. K.}}</ref>
<ref name=apsis>aphelion = ''a'' × (1 + ''e''); perihelion = ''a'' × (1 – ''e''), where ''a'' is the semi-major axis and ''e'' is the eccentricity. The difference between Earth's perihelion and aphelion is 5 million kilometers.—{{cite book|page=[https://archive.org/details/probingnewsolars0000wilk/page/144 144]|title=Probing the New Solar System|url=https://archive.org/details/probingnewsolars0000wilk|last1=Wilkinson|first1=John|year= 2009|publisher=CSIRO Publishing|isbn=978-0-643-09949-4}}</ref>
<ref name=epoch>All astronomical quantities vary, both [[:en:Secular phenomena|secularly]] and [[ကြိမ်နှုန်း|periodically]]. The quantities given are the values at the instant J2000.0 of the secular variation, ignoring all periodic variations.</ref>
<ref name=hill_radius>For Earth, the Hill radius is <math>R_H = a\left ( \frac{m}{3M} \right )^{\frac{1}{3}}</math>, where ''m'' is the mass of Earth, ''a'' is an astronomical unit, and ''M'' is the mass of the Sun. So the radius in AU is about <math>\left ( \frac{1}{3 \cdot 332,946} \right )^{\frac{1}{3}} = 0.01</math>.</ref>
<ref name=surfacecover>Due to natural fluctuations, ambiguities surrounding ice shelves, and mapping conventions for vertical datums, exact values for land and ocean coverage are not meaningful. Based on data from the Vector Map and [http://www.landcover.org/ Global Landcover] {{Webarchive|url=https://web.archive.org/web/20150326085837/http://www.landcover.org/ |date=26 March 2015 }} datasets, extreme values for coverage of lakes and streams are 0.6% and 1.0% of Earth's surface. The ice sheets of Antarctica and Greenland are counted as land, even though much of the rock that supports them lies below sea level.</ref>
<ref name=space_debris>As of 4 January 2018, the United States Strategic Command tracked a total of 18,835 artificial objects, mostly debris. See: {{cite journal |url=https://orbitaldebris.jsc.nasa.gov/quarterly-news/pdfs/odqnv22i1.pdf |title=Satellite Box Score |journal=Orbital Debris Quarterly News |editor1-first=Phillip |editor1-last=Anz-Meador |editor2-first=Debi |editor2-last=Shoots |volume=22 |issue=1 |page=12 |date=February 2018 |access-date=18 April 2018 }} {{Cite web |title=မော်ကွန်းတင်ပြီးမိတ္တူ |url=https://orbitaldebris.jsc.nasa.gov/quarterly-news/pdfs/odqnv22i1.pdf |accessdate=23 November 2021 |archivedate=2 April 2019 |archiveurl=https://web.archive.org/web/20190402034308/https://orbitaldebris.jsc.nasa.gov/quarterly-news/pdfs/odqnv22i1.pdf }}</ref>
}}
== ကိုးကား ==
{{reflist|3|refs=
<ref name=amnat163_2_192>{{cite journal |last1=Hillebrand |first1=Helmut |title=On the Generality of the Latitudinal Gradient |journal=American Naturalist |year=2004 |volume=163 |issue=2 |pages=192–211 |doi=10.1086/381004 |pmid=14970922 |s2cid=9886026 |url=http://oceanrep.geomar.de/4048/1/Hillebrand_2004_Amer_nat.pdf }} {{Cite web |title=မော်ကွန်းတင်ပြီးမိတ္တူ |url=http://oceanrep.geomar.de/4048/1/Hillebrand_2004_Amer_nat.pdf |accessdate=23 November 2021 |archivedate=22 September 2017 |archiveurl=https://web.archive.org/web/20170922001037/http://oceanrep.geomar.de/4048/1/Hillebrand_2004_Amer_nat.pdf }}</ref>
<ref name=angular>{{cite web |last1=Williams |first1=David R. |date=10 February 2006 |url=http://nssdc.gsfc.nasa.gov/planetary/planetfact.html |title=Planetary Fact Sheets |publisher=NASA |accessdate=28 September 2008 |archivedate=4 March 2016 |archiveurl=https://web.archive.org/web/20160304052405/http://nssdc.gsfc.nasa.gov/planetary/planetfact.html }}—See the apparent diameters on the Sun and Moon pages.</ref>
<ref name="Apollo13History">{{cite web |url=https://history.nasa.gov/SP-4029/Apollo_13a_Summary.htm |title=Apollo 13 The Seventh Mission: The Third Lunar Landing Attempt 11 April–17 April 1970 |publisher=NASA |access-date=7 November 2015 |accessdate=24 November 2021 |archivedate=2 March 2012 |archiveurl=https://www.webcitation.org/65r4SXJau?url=https://history.nasa.gov/SP-4029/Apollo_13a_Summary.htm }}</ref>
<ref name=asp2002>{{cite conference |last1=Guinan |first1=E. F. |last2=Ribas |first2=I. |editor=Benjamin Montesinos, Alvaro Gimenez and Edward F. Guinan |title=Our Changing Sun: The Role of Solar Nuclear Evolution and Magnetic Activity on Earth's Atmosphere and Climate |work=ASP Conference Proceedings: The Evolving Sun and its Influence on Planetary Environments |year=2002 |location=San Francisco |isbn=978-1-58381-109-2 |publisher=Astronomical Society of the Pacific |bibcode=2002ASPC..269...85G}}</ref>
<ref name="atmosphere">{{cite web |author=Staff |date=8 October 2003 |url=http://www.nasa.gov/audience/forstudents/9-12/features/912_liftoff_atm.html |title=Earth's Atmosphere |publisher=NASA |access-date=21 March 2007 |accessdate=23 November 2021 |archivedate=25 February 2013 |archiveurl=https://www.webcitation.org/6EhgRBXL0?url=http://www.nasa.gov/audience/forstudents/9-12/features/912_liftoff_atm.html }}</ref>
<ref name=Allen296>{{cite book |title=Allen's Astrophysical Quantities |last1=Allen |first1=Clabon Walter |last2=Cox |first2=Arthur N. |publisher=Springer |date=2000 |isbn=0-387-98746-0 |url=https://books.google.com/?id=w8PK2XFLLH8C&pg=PA296 |page=296 |accessdate=2010-08-17}}</ref>
<ref name=geerts_linacre97>{{cite web |last1=Geerts |first1=B. |last2=Linacre |first2=E. |url=http://www-das.uwyo.edu/~geerts/cwx/notes/chap01/tropo.html |title=The height of the tropopause |date=November 1997 |work=Resources in Atmospheric Sciences |publisher=University of Wyoming |access-date=10 August 2006 |accessdate=23 November 2021 |archivedate=27 April 2020 |archiveurl=https://web.archive.org/web/20200427090700/http://www-das.uwyo.edu/~geerts/cwx/notes/chap01/tropo.html }}</ref>
<ref name=Allen294>{{cite book |title=Allen's Astrophysical Quantities |last1=Allen |first1=Clabon Walter |last2=Cox |first2=Arthur N. |publisher=Springer |date=2000 |isbn=0-387-98746-0 |url=https://books.google.com/?id=w8PK2XFLLH8C&pg=PA294 |page=294 |accessdate=2011-03-13}}</ref>
<ref name=biodiv>{{cite web |author=Staff |url=http://www.biodiv.org/programmes/default.shtml |title=Themes & Issues |publisher=Secretariat of the Convention on Biological Diversity |access-date=29 March 2007 |url-status=dead |archive-url=https://web.archive.org/web/20070407011249/http://www.biodiv.org/programmes/default.shtml |archive-date=7 April 2007 |accessdate=24 November 2021 |archivedate=7 April 2007 |archiveurl=https://web.archive.org/web/20070407011249/http://www.biodiv.org/programmes/default.shtml }}</ref>
<ref name=bowring_housch1995>{{cite journal |last1=Bowring |first1=S. |last2=Housh |first2=T. |title=The Earth's early evolution |url=https://archive.org/details/sim_science_1995-09-15_269_5230/page/1534 |year=1995 |doi=10.1126/science.7667634 |journal=Science |volume=269 |pmid=7667634 |issue=5230 |bibcode=1995Sci...269.1535B |pages=1535–40}}</ref>
<ref name=brown_mussett1981>{{cite book |last1=Brown |first1=Geoff C. |last2=Mussett |first2=Alan E. |title=The Inaccessible Earth |edition=2nd |date=1981 |page=166 |publisher=Taylor & Francis |isbn=0-04-550028-2}} Note: After Ronov and Yaroshevsky (1969).</ref>
<ref name="britt2000">{{cite web |first1=Robert |last1=Britt |url=http://www.space.com/scienceastronomy/solarsystem/death_of_earth_000224.html |title=Freeze, Fry or Dry: How Long Has the Earth Got? |date=25 February 2000 |deadurl=yes |archiveurl=https://web.archive.org/web/20090605231345/http://www.space.com/scienceastronomy/solarsystem/death_of_earth_000224.html |archivedate=5 June 2009}}</ref>
<ref name="berger2002">{{cite web |last1=Berger |first1=Wolfgang H. |author-link1=Wolfgang H. Berger |year=2002 |url=http://earthguide.ucsd.edu/virtualmuseum/climatechange1/cc1syllabus.shtml |title=The Earth's Climate System |publisher=University of California, San Diego |access-date=24 March 2007 |accessdate=23 November 2021 |archivedate=10 March 2013 |archiveurl=https://www.webcitation.org/6F180Errm?url=http://earthguide.ucsd.edu/virtualmuseum/climatechange1/cc1syllabus.shtml }}</ref>
<ref name=canup_asphaug2001b>{{cite journal |last1=Canup |first1=R. |author-link1=Robin Canup|last2=Asphaug |first2=E. I. |author-link2=Erik Ian Asphaug|s2cid=4413525 |title=Origin of the Moon in a giant impact near the end of the Earth's formation |url=https://archive.org/details/sim_nature-uk_2001-08-16_412_6848/page/708 |journal=Nature |volume=412 |pages=708–12 |year=2001 |doi=10.1038/35089010 |pmid=11507633 |issue=6848 |bibcode=2001Natur.412..708C}}</ref>
<ref name=carrington>{{cite news |first1=Damian |last1=Carrington |title=Date set for desert Earth |publisher=BBC News |date=21 February 2000 |url=http://news.bbc.co.uk/1/hi/sci/tech/specials/washington_2000/649913.stm |accessdate=31 March 2007 |archivedate=10 July 2012 |archiveurl=https:///20120710142744/http://news.bbc.co.uk/2/hi/sci/tech/specials/washington_2000/649913.stm }}</ref>
<ref name=cazenave_ahrens1995>{{cite book |first1=Anny |last1=Cazenave |authorlink=Anny Cazenave |editor=Ahrens, Thomas J |date=1995 |title=Global Earth Physics: A Handbook of Physical Constants |publisher=American Geophysical Union |location=Washington, DC |isbn=0-87590-851-9|chapter-url=http://www.agu.org/reference/gephys/5_cazenave.pdf |archiveurl=https://web.archive.org/web/20061016024803/http://www.agu.org/reference/gephys/5_cazenave.pdf |archivedate=2006-10-16 |accessdate=2008-08-03|chapter-format=PDF |chapter=Geoid, Topography and Distribution of Landforms}}</ref>
<ref name="Cox2000">{{cite book |editor=Arthur N. Cox |title=Allen's Astrophysical Quantities |url=https://books.google.com/?id=w8PK2XFLLH8C&pg=PA244 |edition=4th |date=2000 |publisher=AIP Press |location=New York |isbn=0-387-98746-0 |page=244 |accessdate=2010-08-17}}</ref>
<ref name=cordoba2004>{{cite web |first1=S. Sanz Fernández |last1=de Córdoba |date=21 June 2004 |url=http://www.fai.org/astronautics/100km.asp |archive-url=https://web.archive.org/web/20100115223732/http://www.fai.org/astronautics/100km.asp |archive-date=15 January 2010 |title=Presentation of the Karman separation line, used as the boundary separating Aeronautics and Astronautics |publisher=Fédération Aéronautique Internationale |access-date=21 April 2007 |url-status=dead |accessdate=23 November 2021 |archivedate=9 July 2011 |archiveurl=https://web.archive.org/web/20110709114431/http://www.fai.org/astronautics/100km.asp }}</ref>
<ref name=dole1970>{{cite book |first1=Stephen H. |last1=Dole |date=1970 |title=Habitable Planets for Man |edition=2nd |publisher=American Elsevier Publishing Co |url=https://www.rand.org/pubs/reports/R414/ |access-date=11 March 2007 |isbn=978-0-444-00092-7 |archive-date=3 January 2010 |archive-url=https://web.archive.org/web/20100103083736/http://www.rand.org/pubs/reports/R414/ |url-status=live }}</ref>
<ref name=hydrologic_cycle>{{cite web |author=Various |date=21 July 1997 |url=http://ww2010.atmos.uiuc.edu/(Gh)/guides/mtr/hyd/home.rxml |title=The Hydrologic Cycle |publisher=University of Illinois |access-date=24 March 2007 |accessdate=23 November 2021 |archivedate=21 March 2013 |archiveurl=https://www.webcitation.org/6FHAZ1iIh?url=http://ww2010.atmos.uiuc.edu/(Gh)/guides/mtr/hyd/home.rxml }}</ref>
<ref name="Harrison 2002">{{cite book |first1=Roy M. |last1=Harrison |author-link1=Roy M. Harrison |last2=Hester |first2=Ronald E. |date=2002 |title=Causes and Environmental Implications of Increased UV-B Radiation |url=https://archive.org/details/causesenvironmen0000unse |publisher=Royal Society of Chemistry |isbn=978-0-85404-265-4}}</ref>
<ref name=hessd4_439>{{cite journal |last1=Peel |first1=M. C. |last2=Finlayson |first2=B. L. |last3=McMahon |first3=T. A. |title=Updated world map of the Köppen-Geiger climate classification |journal=Hydrology and Earth System Sciences Discussions |year=2007 |volume=4 |issue=2 |pages=439–73 |doi=10.5194/hessd-4-439-2007 |bibcode=2007HESSD...4..439P |url=https://hal.archives-ouvertes.fr/hal-00298818/file/hessd-4-439-2007.pdf |doi-access=free }} {{Cite web |title=မော်ကွန်းတင်ပြီးမိတ္တူ |url=https://hal.archives-ouvertes.fr/hal-00298818/file/hessd-4-439-2007.pdf |accessdate=24 November 2021 |archivedate=31 July 2019 |archiveurl=https://web.archive.org/web/20190731170150/https://hal.archives-ouvertes.fr/hal-00298818/file/hessd-4-439-2007.pdf }}</ref>
<ref name=hess5_4_569>{{cite journal |last1=Bounama |first1=Christine |year=2001 |last2=Franck |first2=S. |last3=Von Bloh |first3=W. |title=The fate of Earth's ocean |journal=Hydrology and Earth System Sciences |volume=5 |issue=4 |pages=569–75 |publisher=Potsdam Institute for Climate Impact Research |location=Germany |url=http://www.hydrol-earth-syst-sci.net/5/569/2001/hess-5-569-2001.pdf |accessdate=3 July 2009 |doi=10.5194/hess-5-569-2001 |bibcode=2001HESS....5..569B |archive-date=27 June 2019 |access-date=24 June 2018 |archive-url=https://web.archive.org/web/20190627003933/https://www.hydrol-earth-syst-sci.net/5/569/2001/hess-5-569-2001.pdf |url-status=dead }} {{Cite web |title=မော်ကွန်းတင်ပြီးမိတ္တူ |url=https://www.hydrol-earth-syst-sci.net/5/569/2001/hess-5-569-2001.pdf |accessdate=28 November 2021 |archivedate=27 June 2019 |archiveurl=https://web.archive.org/web/20190627003933/https://www.hydrol-earth-syst-sci.net/5/569/2001/hess-5-569-2001.pdf }}</ref>
<ref name=IERS>{{cite web |author=Staff |date=2007-08-07 |url=http://hpiers.obspm.fr/eop-pc/models/constants.html |title=Useful Constants |publisher=International Earth Rotation and Reference Systems Service |accessdate=2008-09-23 |archivedate=3 November 2012 |archiveurl=https://www.webcitation.org/6Bto7IZMb?url=http://hpiers.obspm.fr/eop-pc/models/constants.html }}</ref>
<ref name="earth_fact_sheet">{{cite web |last1=Williams |first1=David R. |date=2004-09-01 |url=http://nssdc.gsfc.nasa.gov/planetary/factsheet/earthfact.html |title=Earth Fact Sheet |publisher=NASA |accessdate=2010-08-09 |archivedate=25 December 2015 |archiveurl=https://web.archive.org/web/20151225024603/http://nssdc.gsfc.nasa.gov/planetary/factsheet/earthfact.html }}</ref>
<ref name=iers>{{cite conference |author=IERS Working Groups |editor=McCarthy, Dennis D.; Petit, Gérard |title=General Definitions and Numerical Standards |date=2003 |work=IERS Technical Note No. 32 |publisher=U.S. Naval Observatory and Bureau International des Poids et Mesures |url=http://www.iers.org/MainDisp.csl?pid=46-25776 |archiveurl=https://www.webcitation.org/5nDzc2unH?url=http://www.iers.org/MainDisp.csl?pid=46-25776 |archivedate=1 February 2010 |accessdate=2008-08-03 |url-status=live }}</ref>
<ref name=jessey>{{cite web |last1=Jessey |first1=David |url=http://geology.csupomona.edu/drjessey/class/Gsc101/Weathering.html |archive-url=https://web.archive.org/web/20070703170212/http://geology.csupomona.edu/drjessey/class/Gsc101/Weathering.html |archive-date=3 July 2007 |title=Weathering and Sedimentary Rocks |website=California State Polytechnic University, Pomona |access-date=20 March 2007 |url-status=dead |accessdate=23 November 2021 |archivedate=3 July 2007 |archiveurl=https://web.archive.org/web/20070703170212/http://geology.csupomona.edu/drjessey/class/Gsc101/Weathering.html }}</ref>
<ref name=kinver20091210>{{cite news |url=http://news.bbc.co.uk/2/hi/science/nature/8406839.stm |title=Global average temperature may hit record level in 2010 |last1=Kinver |first1=Mark |date=December 10, 2009 |work=BBC Online |accessdate=2010-04-22 |archivedate=5 August 2010 |archiveurl=https://web.archive.org/web/20100805084302/http://news.bbc.co.uk/2/hi/science/nature/8406839.stm }}</ref>
<ref name=hbcp2000>{{cite book |author=Various |editor=David R. Lide |date=2000 |title=Handbook of Chemistry and Physics |url=https://archive.org/details/crchandbookofche0000unse_u9i8 |edition=81st |publisher=CRC |isbn=0-8493-0481-4}}</ref>
<ref name=kuhn2006>{{cite book |first1=Betsy |last1=Kuhn |date=2006 |title=The race for space: the United States and the Soviet Union compete for the new frontier |url=https://archive.org/details/raceforspaceunit0000kuhn |page=[https://archive.org/details/raceforspaceunit0000kuhn/page/34 34] |publisher=Twenty-First Century Books |isbn=978-0-8225-5984-9}}</ref>
<ref name=milbert_smith96>{{cite web |last1=Milbert |first1=D. G. |last2=Smith |first2=D. A |url=http://www.ngs.noaa.gov/PUBS_LIB/gislis96.html |title=Converting GPS Height into NAVD88 Elevation with the GEOID96 Geoid Height Model |publisher=National Geodetic Survey, NOAA |access-date=7 March 2007 |accessdate=23 November 2021 |archivedate=4 June 2007 |archiveurl=https://web.archive.org/web/20070604082642/http://www.ngs.noaa.gov/PUBS_LIB/gislis96.html }}</ref>
<ref name=michon2006>{{cite web |last1=Scott |first1=Michon |date=24 April 2006 |url=http://earthobservatory.nasa.gov/Study/HeatBucket/ |title=Earth's Big heat Bucket |publisher=NASA Earth Observatory |access-date=14 March 2007 |accessdate=22 November 2021 |archivedate=16 September 2008 |archiveurl=https://web.archive.org/web/20080916014057/http://earthobservatory.nasa.gov/Study/HeatBucket/ }}</ref>
<ref name="moran2005">{{cite web |last1=Moran |first1=Joseph M. |year=2005 |url=http://www.nasa.gov/worldbook/weather_worldbook.html |archive-url=https://web.archive.org/web/20101213184908/http://www.nasa.gov/worldbook/weather_worldbook.html |archive-date=13 December 2010 |title=Weather |work=World Book Online Reference Center |publisher=NASA/World Book, Inc |access-date=17 March 2007 |url-status=dead |accessdate=23 November 2021 |archivedate=13 December 2010 |archiveurl=https://web.archive.org/web/20101213184908/http://www.nasa.gov/worldbook/weather_worldbook.html }}</ref>
<ref name=nasa20051201>{{cite web |author=Astrophysicist team |date=1 December 2005 |url=http://imagine.gsfc.nasa.gov/docs/ask_astro/answers/030827a.html |title=Earth's location in the Milky Way |publisher=NASA |access-date=11 June 2008 |archive-url=https://web.archive.org/web/20080701122913/http://imagine.gsfc.nasa.gov/docs/ask_astro/answers/030827a.html |archive-date=1 July 2008 |url-status=dead |accessdate=23 November 2021 |archivedate=1 July 2008 |archiveurl=https://web.archive.org/web/20080701122913/http://imagine.gsfc.nasa.gov/docs/ask_astro/answers/030827a.html }}</ref>
<ref name=nature412_708>{{cite journal |last1=Canup |first1=R. |last2=Asphaug |first2=E. |title=Origin of the Moon in a giant impact near the end of the Earth's formation |url=https://archive.org/details/sim_nature-uk_2001-08-16_412_6848/page/708 |journal=Nature |volume=412 |pages=708–12 |year=2001 |doi=10.1038/35089010 |pmid=11507633 |issue=6848 |bibcode=2001Natur.412..708C}}</ref>
<ref name=natsci_oxy4>{{cite web |last1=Morris |first1=Ron M |url=http://seis.natsci.csulb.edu/rmorris/oxy/oxy4.html |title=Oceanic Processes |publisher=NASA Astrobiology Magazine |access-date=14 March 2007 |url-status=dead |archive-url=https://web.archive.org/web/20090415082741/http://seis.natsci.csulb.edu/rmorris/oxy/oxy4.html |archive-date=15 April 2009 |accessdate=22 November 2021 |archivedate=15 April 2009 |archiveurl=https://web.archive.org/web/20090415082741/http://seis.natsci.csulb.edu/rmorris/oxy/oxy4.html }}</ref>
<ref name=nasa_rg_iss2007>{{cite web |date=16 January 2007 |url=http://www.nasa.gov/mission_pages/station/news/ISS_Reference_Guide.html |title=Reference Guide to the International Space Station |work=NASA |access-date=23 December 2008 |accessdate=24 November 2021 |archivedate=19 January 2009 |archiveurl=https://web.archive.org/web/20090119175052/http://www.nasa.gov/mission_pages/station/news/ISS_Reference_Guide.html }}</ref>
<ref name="NIST2008">{{Cite book |url=http://physics.nist.gov/Pubs/SP330/sp330.pdf |title=The international system of units (SI) |publisher=United States Department of Commerce, National Institute of Standards and Technology Special Publication 330 |edition=2008 |page=52 |access-date=2 March 2016 |archive-date=3 June 2016 |archive-url=https://web.archive.org/web/20160603215953/http://physics.nist.gov/Pubs/SP330/sp330.pdf |url-status=live }}</ref>
<ref name=cia>{{cite web |author=Staff |date=2008-07-24 |url=https://www.cia.gov/library/publications/the-world-factbook/geos/xx.html |title=World |work=The World Factbook |publisher=Central Intelligence Agency |accessdate=2008-08-05 |archivedate=5 January 2010 |archiveurl=https://web.archive.org/web/20100105171656/https://www.cia.gov/library/publications/the-world-factbook/geos/xx.html }}</ref>
<ref name="ngdc2006">{{cite web |last1=Sandwell |first1=D. T. |last2=Smith |first2=Walter H. F. |author-link2=Walter H. F. Smith |date=7 July 2006 |url=http://www.ngdc.noaa.gov/mgg/bathymetry/predicted/explore.HTML |title=Exploring the Ocean Basins with Satellite Altimeter Data |publisher=NOAA/NGDC |access-date=21 April 2007 |archive-url=https:///20140715142212/http://www.ngdc.noaa.gov/mgg/bathymetry/predicted/explore.HTML |archive-date=15 July 2014 |accessdate=23 November 2021 |archivedate=26 February 2007 |archiveurl=https://web.archive.org/web/20070226201911/https://www.ngdc.noaa.gov/mgg/bathymetry/predicted/explore.HTML }}</ref>
<ref name="OWID_urbanization_2019">{{Cite journal |last1=Ritchie |first1=H. |last2=Roser |first2=M. |author-link2=Max Roser |date=2019 |title=What share of people will live in urban areas in the future? |url=https://ourworldindata.org/urbanization#what-share-of-people-will-live-in-urban-areas-in-the-future |access-date=26 October 2020 |journal=Our World in Data }} {{Cite web |title=မော်ကွန်းတင်ပြီးမိတ္တူ |url=https://ourworldindata.org/urbanization |accessdate=24 November 2021 |archivedate=29 October 2020 |archiveurl=https://web.archive.org/web/20201029185610/https://ourworldindata.org/urbanization }}</ref>
<ref name=pnas1_24_9576>{{cite journal |last1=Li |first1=King-Fai |last2=Pahlevan |first2=Kaveh |last3=Kirschvink |first3=Joseph L. |last4=Yung |first4=Yuk L. |year=2009 |title=Atmospheric pressure as a natural climate regulator for a terrestrial planet with a biosphere |journal=Proceedings of the National Academy of Sciences |volume=106 |issue=24 |pages=9576–79 |url=http://www.gps.caltech.edu/~kfl/paper/Li_PNAS2009.pdf |accessdate=19 July 2009 |doi=10.1073/pnas.0809436106 |pmid=19487662 |pmc=2701016 |bibcode=2009PNAS..106.9576L }} {{Cite web |title=မော်ကွန်းတင်ပြီးမိတ္တူ |url=http://www.gps.caltech.edu/~kfl/paper/Li_PNAS2009.pdf |accessdate=24 June 2018 |archivedate=4 July 2009 |archiveurl=https://web.archive.org/web/20090704102832/http://www.gps.caltech.edu/~kfl/paper/Li_PNAS2009.pdf }}</ref>
<ref name=pnas71_12_6973>{{cite journal |last1=Morgan |first1=J. W. |last2=Anders |first2=E. |title=Chemical composition of Earth, Venus, and Mercury |url=https://archive.org/details/sim_proceedings-of-the-national-academy-of-sciences-usa_1980-12_77_12/page/6973 |journal=Proceedings of the National Academy of Sciences |year=1980 |volume=77 |issue=12 |pages=6973–77 |doi=10.1073/pnas.77.12.6973 |pmid=16592930 |pmc=350422 |bibcode=1980PNAS...77.6973M}}</ref>
<ref name="Pidwirny2006_7">{{cite web |last1=Pidwirny |first1=Michael |year=2006 |url=http://www.physicalgeography.net/fundamentals/7h.html |title=Fundamentals of Physical Geography (2nd Edition) |publisher=PhysicalGeography.net |accessdate=19 March 2007 |archivedate=22 August 2011 |archiveurl=https://www.webcitation.org/617EhGJ8l?url=http://www.physicalgeography.net/fundamentals/7h.html }}</ref>
<ref name=physorg20100304>{{cite news |author=Staff |title=Oldest measurement of Earth's magnetic field reveals battle between Sun and Earth for our atmosphere |date=4 March 2010 |work=Phys.org |url=http://www.physorg.com/news186922627.html |access-date=27 March 2010 |accessdate=22 November 2021 |archivedate=27 April 2011 |archiveurl=https://web.archive.org/web/20110427064855/http://www.physorg.com/news186922627.html }}</ref>
<ref name=rahmstorf2003>{{cite web |first1=Stefan |last1=Rahmstorf |author-link=Stefan Rahmstorf |year=2003 |url=http://www.pik-potsdam.de/~stefan/thc_fact_sheet.html |title=The Thermohaline Ocean Circulation |work=Potsdam Institute for Climate Impact Research |access-date=21 April 2007 |accessdate=23 November 2021 |archivedate=10 March 2013 |archiveurl=https://www.webcitation.org/6F180jPsW?url=http://www.pik-potsdam.de/~stefan/thc_fact_sheet.html }}</ref>
<ref name=sadava_heller2006>{{cite book |last1=Sadava |first1=David E. |last2=Heller |first2=H. Craig |last3=Orians |first3=Gordon H. |author-link3=Gordon Orians|title=Life, the Science of Biology |publisher=MacMillan |date=2006 |edition=8th |page=[https://archive.org/details/lifescienceofbio00davi/page/1114 1114] |isbn=978-0-7167-7671-0 |url=https://archive.org/details/lifescienceofbio00davi/page/1114}}</ref>
<ref name=sample2005>{{cite web |first1=Sharron |last1=Sample |date=21 June 2005 |url=http://science.hq.nasa.gov/oceans/physical/SST.html |title=Sea Surface Temperature |publisher=NASA |access-date=21 April 2007 |url-status=dead |archive-url=https://web.archive.org/web/20130427045816/http://science.nasa.gov/earth-science/oceanography/ |archive-date=27 April 2013 |accessdate=22 November 2021 |archivedate=8 April 2008 |archiveurl=https://web.archive.org/web/20080408000148/http://science.hq.nasa.gov/oceans/physical/SST.html }}</ref>
<ref name=science_241_4872_1441>{{cite journal |last1=May |first1=Robert M. |title=How many species are there on earth? |url=https://archive.org/details/sim_science_1988-09-16_241_4872/page/1440 |journal=Science |year=1988 |volume=241 |issue=4872 |pages=1441–49 |bibcode=1988Sci...241.1441M |doi=10.1126/science.241.4872.1441 |pmid=17790039}}</ref>
<ref name=sciweek2004>{{cite web |author=Staff |year=2004 |url=http://scienceweek.com/2004/rmps-23.htm |archive-url=https://web.archive.org/web/20070713053611/http://scienceweek.com/2004/rmps-23.htm |title=Stratosphere and Weather; Discovery of the Stratosphere |work=Science Week |access-date=14 March 2007 |archive-date=13 July 2007 |url-status=dead |accessdate=23 November 2021 |archivedate=13 July 2007 |archiveurl=https://web.archive.org/web/20070713053611/http://scienceweek.com/2004/rmps-23.htm }}</ref>
<ref name="sun_future">{{cite journal |last1=Sackmann |first1=I.-J. |last2=Boothroyd |first2=A. I. |last3=Kraemer |first3=K. E. |title=Our Sun. III. Present and Future |url=https://archive.org/details/sim_astrophysical-journal_1993-11-20_418_1/page/456 |journal=Astrophysical Journal |year=1993 |volume=418 |pages=457–68 |doi=10.1086/173407 |bibcode=1993ApJ...418..457S}}</ref>
<ref name="sun_future_schroder">{{cite journal |first1=K.-P. |last1=Schröder |last2=Connon Smith |first2=Robert |year=2008 |title=Distant future of the Sun and Earth revisited |doi=10.1111/j.1365-2966.2008.13022.x |journal=Monthly Notices of the Royal Astronomical Society |arxiv=0801.4031 |volume=386 |issue=1 |pages=155–63 |bibcode=2008MNRAS.386..155S}}<br />See also {{cite news |first=Jason |last=Palmer |url=https://www.newscientist.com/article/dn13369 |archiveurl=https://web.archive.org/web/20120415105707/http://www.newscientist.com/article/dn13369 |archivedate=15 April 2012 |title=Hope dims that Earth will survive Sun's death |date=22 February 2008 |work=NewScientist.com news service |accessdate=24 March 2008}}</ref>
<ref name=shayler_vis2005>{{cite book |first1=David |last1=Shayler |first2=Bert |last2=Vis |date=2005 |title=Russia's Cosmonauts: Inside the Yuri Gagarin Training Center |publisher=Birkhäuser |isbn=978-0-387-21894-6}}</ref>
<ref name=ucs>{{cite web |url=https://www.ucsusa.org/nuclear-weapons/space-weapons/satellite-database |title=UCS Satellite Database |work=Nuclear Weapons & Global Security |publisher=Union of Concerned Scientists |date=31 December 2020 |access-date=28 March 2021 |accessdate=23 November 2021 |archivedate=25 January 2016 |archiveurl=https://web.archive.org/web/20160125031401/https://www.ucsusa.org/nuclear-weapons/space-weapons/satellite-database }}</ref>
<ref name=usno>{{cite web |title=Selected Astronomical Constants, 2011 |work=The Astronomical Almanac |url=http://asa.usno.navy.mil/SecK/2011/Astronomical_Constants_2011.txt |archiveurl=https://web.archive.org/web/20130826043456/http://asa.usno.navy.mil/SecK/2011/Astronomical_Constants_2011.txt |archivedate=2013-08-26 |accessdate=2011-02-25}}</ref>
<ref name=USNO_TSD>{{cite web |title=Leap seconds |publisher=Time Service Department, USNO |url=http://tycho.usno.navy.mil/leapsec.html |archiveurl=https://web.archive.org/web/20150312003149/http://tycho.usno.navy.mil/leapsec.html |accessdate=23 September 2008 |archivedate=12 March 2015}}</ref>
<ref name=VSOP87>{{cite journal |title=Numerical expressions for precession formulae and mean elements for the Moon and planets |url=https://archive.org/details/sim_astronomy-and-astrophysics_1994-02-10_282_2/page/662 |journal=Astronomy and Astrophysics |volume=282 |issue=2 |pages=663–683 |date=February 1994 |last1=Simon |first1=J.L. |last2=Bretagnon |first2=P. |last3=Chapront |first3=J. |last4=Chapront-Touzé |first4=M. |last5=Francou |first5=G. |last6=Laskar |first6=J. |bibcode=1994A&A...282..663S}}</ref>
<ref name=vazquez_etal2006>{{cite journal |last1=Vázquez |first1=M. |first2=P. Montañés |last2=Rodríguez |last3=Palle |first3=E. |year=2006 |url=http://www.iac.es/folleto/research/preprints/files/PP06024.pdf |title=The Earth as an Object of Astrophysical Interest in the Search for Extrasolar Planets |journal=Lecture Notes and Essays in Astrophysics |volume=2 |page=49 |access-date=21 March 2007 |bibcode=2006LNEA....2...49V |archive-url=https://www.webcitation.org/617ElSxyd?url=http://www.iac.es/folleto/research/preprints/files/PP06024.pdf |archive-date=22 August 2011 |url-status=dead }} {{Cite web |title=မော်ကွန်းတင်ပြီးမိတ္တူ |url=http://www.iac.es/folleto/research/preprints/files/PP06024.pdf |accessdate=23 November 2021 |archivedate=17 August 2011 |archiveurl=https://web.archive.org/web/20110817220342/http://www.iac.es/folleto/research/preprints/files/PP06024.pdf }}</ref>
<ref name="watersource">{{cite journal |display-authors=1 |last1=Morbidelli |first1=A. |author-link1=Alessandro Morbidelli (astronomer)|last2=Chambers |first2=J. |last3=Lunine |first3=J. I. |last4=Petit |first4=J. M. |last5=Robert |first5=F. |last6=Valsecchi |first6=G. B. |last7=Cyr |first7=K. E. |title=Source regions and time scales for the delivery of water to Earth |url=https://archive.org/details/sim_meteoritics-planetary-science_2000-11_35_6/page/1309 |journal=Meteoritics & Planetary Science |year=2000 |volume=35 |issue=6 |pages=1309–20 |bibcode=2000M&PS...35.1309M |doi=10.1111/j.1945-5100.2000.tb01518.x|doi-access=free }}</ref>
<ref name=ward_brownlee2002>{{cite book |last1=Ward |first1=Peter D. |last2=Brownlee |first2=Donald |date=2002 |title=The Life and Death of Planet Earth: How the New Science of Astrobiology Charts the Ultimate Fate of Our World |url=https://archive.org/details/isbn_9780805067811 |publisher=Times Books, Henry Holt and Company |location=New York |isbn=0-8050-6781-7}}</ref>
<ref name="Williams1994">{{cite journal |last1=Williams |first1=James G. |title=Contributions to the Earth's obliquity rate, precession, and nutation |journal=The Astronomical Journal |volume=108 |date=1994 |page=711 |issn=00046256 |doi=10.1086/117108 |bibcode=1994AJ....108..711W}}</ref>
<ref name="Pidwirny 2006_8">{{cite journal |last1=Pidwirny |first1=Michael |date=2006-02-02 |title=Surface area of our planet covered by oceans and continents.(Table 8o-1) |publisher=University of British Columbia, Okanagan |url=http://www.physicalgeography.net/fundamentals/8o.html |accessdate=2007-11-26 }} {{Cite web |title=မော်ကွန်းတင်ပြီးမိတ္တူ |url=http://www.physicalgeography.net/fundamentals/8o.html |accessdate=2 March 2016 |archivedate=9 December 2006 |archiveurl=https://web.archive.org/web/20061209125035/http://www.physicalgeography.net/fundamentals/8o.html }}</ref>
<ref name="WGS-84-2">{{cite web |first1=Sigurd |last1=Humerfelt |date=October 26, 2010 |title=How WGS 84 defines Earth |url=http://home.online.no/~sigurdhu/WGS84_Eng.html |accessdate=2011-04-29 |archivedate=24 April 2011 |archiveurl=https://web.archive.org/web/20110424104419/http://home.online.no/~sigurdhu/WGS84_Eng.html }}</ref>
}}
{{Footer_SolarSystem}}
[[ကဏ္ဍ:ကမ္ဘာဂြိုဟ်]][[ကဏ္ဍ:ပထဝီဝင်]]
[[ကဏ္ဍ:နီအဖွဲ့အစည်း]]
[[ကဏ္ဍ:သဘာဝသိပ္ပံ]]
[[ကဏ္ဍ:နီအဖွဲ့အစည်း၏ ဂြိုဟ်တိ]]
t1mbid3gz613rt7vgpioue6o9a4cwtd