使用Python怎么實(shí)現(xiàn)一個(gè)坐標(biāo)線性插值應(yīng)用?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到巴里坤哈薩克網(wǎng)站設(shè)計(jì)與巴里坤哈薩克網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋巴里坤哈薩克地區(qū)。一、背景
在野外布設(shè)700米的測(cè)線,點(diǎn)距為10米,用GPS每隔50米測(cè)量一個(gè)坐標(biāo),再把測(cè)線的頭和為測(cè)量一個(gè)坐標(biāo)。現(xiàn)在需使用線性插值的方法求取每?jī)蓚€(gè)坐標(biāo)之間的其他4個(gè)點(diǎn)的值。
二、插值原理
使用等比插值的方法
起始值為 a
終止值為 b
步長(zhǎng)值為 (a-b)/5
后面的數(shù)分別為 a+n, a+2n, a+3n, a+4n
三、代碼實(shí)習(xí)對(duì) x 插值
interx.py
import numpy as np f = np.loadtxt('datax.txt') a = f[:, 0] b = f[:, 1] for j in np.arange(len(a)): aa = a[j]*1000 # np.arrange()會(huì)自動(dòng)去掉小數(shù) bb = b[j]*1000 n = (bb-aa) / 5 x = np.arange(6) x[0] = aa print(x[0]/1000) for i in range(1, 5, 1): x[i] = x[i-1]+n print(x[i]/1000) i = i+1 # print(bb/1000) # print("\n")
datax.txt
514873.536 514883.939 514883.939 514894.358 514894.358 514903.837 514903.837 514903.807 514903.807 514907.179 514907.179 514911.356 514911.356 514913.448 514913.448 514913.315 514913.315 514917.344 514917.344 514923.684 514923.684 514924.801 514924.801 514929.697 514929.697 514916.274
對(duì) y 插值
intery.py
import numpy as np f = np.loadtxt('datay.txt') a = f[:, 0] b = f[:, 1] for j in np.arange(len(a)): aa = (a[j] - 2820000)*1000 # 數(shù)據(jù)太長(zhǎng)會(huì)溢出 bb = (b[j]-2820000)*1000 n = (bb-aa) / 5 x = np.arange(6) x[0] = aa print(x[0]/1000+2820000) for i in range(1, 5, 1): x[i] = x[i-1]+n print(x[i]/1000+2820000) i = i+1 # print(bb/1000) # print("\n")
datay.txt
2820617.820 2820660.225 2820660.225 2820693.988 2820693.988 2820819.199 2820819.199 2820831.510 2820831.510 2820858.666 2820858.666 2820973.487 2820973.487 2821017.243 2821017.243 2821019.518 2821019.518 2821058.223 2821058.223 2821097.575 2821097.575 2821144.436 2821144.436 2821173.356 2821173.356 2821218.889
四、最終成果
手動(dòng)把兩次插值結(jié)果復(fù)制到dataxy中
dataxy.txt
514873.536 2820617.819 514875.616 2820626.300 514877.696 2820634.781 514879.776 2820643.262 514881.856 2820651.743 514883.939 2820660.225 514886.022 2820666.977 514888.105 2820673.729 514890.188 2820680.481 514892.271 2820687.233 514894.358 2820693.987 514896.253 2820719.029 514898.148 2820744.071 514900.043 2820769.113 514901.938 2820794.155 514903.837 2820819.199 514903.831 2820821.661 514903.825 2820824.123 514903.819 2820826.585 514903.813 2820829.047 514903.807 2820831.509 514904.481 2820836.940 514905.155 2820842.371 514905.829 2820847.802 514906.503 2820853.233 514907.179 2820858.666 514908.014 2820881.630 514908.849 2820904.594 514909.684 2820927.558 514910.519 2820950.522 514911.356 2820973.487 514911.774 2820982.238 514912.192 2820990.989 514912.610 2820999.740 514913.028 2821008.491 514913.448 2821017.242 514913.421 2821017.697 514913.394 2821018.152 514913.367 2821018.607 514913.340 2821019.062 514913.315 2821019.518 514914.120 2821027.259 514914.925 2821035.000 514915.730 2821042.741 514916.535 2821050.482 514917.344 2821058.223 514918.612 2821066.093 514919.880 2821073.963 514921.148 2821081.833 514922.416 2821089.703 514923.684 2821097.575 514923.907 2821106.947 514924.130 2821116.319 514924.353 2821125.691 514924.576 2821135.063 514924.801 2821144.436 514925.780 2821150.219 514926.759 2821156.002 514927.738 2821161.785 514928.717 2821167.568 514929.697 2821173.356 514927.012 2821182.462 514924.327 2821191.568 514921.642 2821200.674 514918.957 2821209.780
五、畫(huà)圖對(duì)比
dataxy.py
import numpy as np import matplotlib as mpl from matplotlib import pyplot as plt # 解決中文字體顯示不出來(lái) mpl.rcParams["font.sans-serif"]=["SimHei"] mpl.rcParams["axes.unicode_minus"] = False a = np.loadtxt("datax.txt") b = np.loadtxt('datay.txt') c = np.loadtxt('dataxy.txt') x = a[: ,0] y = b[: ,0] xx = c[:,0] yy = c[:,1] plt.plot(x,y,color = 'orange', label = '插值線段') plt.scatter(xx,yy,marker='o', c = 'deepskyblue', alpha = 0.6, label = '實(shí)測(cè)點(diǎn)位') plt.legend() plt.title('Python坐標(biāo)插值') plt.grid() # 保存高清圖片,dpi表示分辨率 plt.savefig('out.png',dpi = 600) plt.show()
文件結(jié)構(gòu)
看完上述內(nèi)容,你們掌握使用Python怎么實(shí)現(xiàn)一個(gè)坐標(biāo)線性插值應(yīng)用的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
本文題目:使用Python怎么實(shí)現(xiàn)一個(gè)坐標(biāo)線性插值應(yīng)用-創(chuàng)新互聯(lián)
標(biāo)題來(lái)源:http://aaarwkj.com/article40/ggjho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、服務(wù)器托管、網(wǎng)站制作、網(wǎng)站導(dǎo)航、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容