第一次見識文件完整性驗證

掃盲請轉戰文件完整性校驗

初識

項目需要拿到《航空航天飛行器動力學建模與仿真》中彈道仿真的算法,然後就開始對它的代碼進行學習,理論上講,過程無非是“加載輸入參數->執行算法->輸出彈道仿真結果”,所以就先找到加載輸入的部分。

幾經周折,學弟表示,找不到入參加載入口,然後我就開始一步一步幫他篩查。

代碼的入口文件加載輸入參數的代碼大概是這樣

	//creating an input stream object and opening 'input.asc' file
	fstream input("input.asc");
	if(input.fail())
	{cerr<<"*** Error: File stream 'input.asc' failed to open (check spelling) ***\n";system("pause");exit(1);}

	//aqcuiring title statement and option selections
	acquire_title_options(input,title,options);

	//acquiring number of module 
	number_modules(input,num_modules);

	//dynamic memory allocation of array 'module_list'
	module_list=new Module[num_modules]; 
	if(module_list==0){cerr<<"*** Error: module_list[] allocation failed *** \n";system("pause");exit(1);}
				
	//acquiring calling order of module 
	order_modules(input,num_modules,module_list);
	
	//acquiring the time stepping
	acquire_timing(input,plot_step,scrn_step,int_step,com_step,traj_step);

	//acquiring number of vehicle objects from 'input.asc'
	number_objects(input,num_vehicles,num_missile,num_target);

習慣性上,我就認爲是第一次打開文件,直接加載參數了。

但事實上,接連的幾個部分都在驗證輸入文件的完整性問題,直到最後才加載參數。

這是我第一次注意到這件事,以前只是前後臺數據交互時可能規定數據交換格式,總覺得自動保存的文件不存在驗證完整性的需求。

再遇

還是上一個項目,給導彈做模擬,就需要模擬場景,在網上尋找三維數據未果,老師說看看Google Earth這個方面的資料,Google貌似是被牆了,遂首先嚐試了BIGEMap,包括衛星圖、高程圖、矢量路網,初步瞭解,可以做出地形圖,然後矢量路網中的建築物輪廓也可以做成建築物模型,再把衛星圖貼上去。

先有了這個思路就開始嘗試,在GlobalMapper裏做好高程圖之後,導出DEM格式,理論上是可以直接導入3DSMAX的,我一導入就提示“文件格式不正確”,,也不明白有啥問題。
在這裏插入圖片描述
機緣巧合之下,我嘗試了高程圖導出STL格式,然後用win10自帶的3D Builder打開了這個文件,有如下提示
在這裏插入圖片描述
點擊修復後,再導入3dsmax就成功了。

這裏大概也是因爲文件某些部分無效,導致無法導入吧。

當3D Builder修復了文件之後,3dsmax導入文件時的模型文件完整性驗證通過,然後成功導入。

今日

最近在空閒的時間裏自學《深度學習:21天實戰Caffe》,第六天的學習裏,介紹了MNIST原始數據文件格式,文件偏移量、值都是明確的值,比如:圖片文件,偏移量0000—值2051,標籤文件偏移量0000—值2049。每行每列有多少數據,什麼類型,可能是哪些值,都明確規定好。

在將原始數據轉換成Caffe能夠識別的LMDB格式之前,首先的一步就是驗證文件完整性,大概這是一個潛規則吧…也能避免由於文件不完整帶來的問題,可以說是一個默認規則。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章