主要原因是降水;農業對降水極為敏感,最低降雨量不應少於400毫米/年。自漢代以來,西北地區降水普遍減少,這意味著產糧區正在東移。這種趨勢非常明顯,有很多例子可以證明:比如黃土高原從森林到荒地的變化;遊牧活動中心的東移;中國古代經濟中心東移南下;陜西經濟地位的下降等等。
漢代西北降水多,產糧區比較靠西,軍需便利,所以漢朝的西門可以維持在玉門關和陽關。明朝西北降水少,產糧區東移,軍需供應困難,所以明朝的西門在嘉峪關地區。此外,遊牧活動中心也向東方轉移,明朝更沒有興趣在西方保持強大的勢力。
我們可以清楚的看到,嘉峪關已經是河西走廊農業區的邊緣,而眾所周知,嘉峪關足以保護河西走廊絕大多數的農業區。即使在近代,嘉峪關以西的農業也很不發達,人口也很少。當轉換到明朝時,嘉峪關以西的人口不超過3萬,但這些人分布在方圓數千英裏的土地上,不可能維持大軍隊的永久存在。