From 98ce8e0c3cc8e39f1f63220b21ef8fe382a37f32 Mon Sep 17 00:00:00 2001 From: Recolic Keghart <root@recolic.net> Date: Tue, 5 Dec 2017 15:45:33 +0800 Subject: [PATCH] Maybe libquickmap is harder to use now. Add some doc. --- .vscode/tags | 13 +++++-- DrawPoint.py | 19 ---------- ThermalConductivity/dataL | 7 ++++ ThermalConductivity/dataT | 72 ++++++++++++++++++++++++++++++++++++ ThermalConductivity/draw1.py | 22 +++++++++++ ThermalConductivity/draw2.py | 10 +++++ quickmap.py | 16 +++++++- sound/quickmap.py | 4 +- va/quickmap.py | 4 +- 9 files changed, 139 insertions(+), 28 deletions(-) delete mode 100644 DrawPoint.py create mode 100644 ThermalConductivity/dataL create mode 100644 ThermalConductivity/dataT create mode 100755 ThermalConductivity/draw1.py create mode 100755 ThermalConductivity/draw2.py diff --git a/.vscode/tags b/.vscode/tags index af09553..30d69be 100644 --- a/.vscode/tags +++ b/.vscode/tags @@ -5,7 +5,7 @@ !_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/ !_TAG_PROGRAM_VERSION 5.8 // DrawPoint.py ../DrawPoint.py 1;" kind:file line:1 -GetMap ../quickmap.py /^def GetMap(parrX, parrY, windowX = 12, windowY = 8, line = False, passO = False):$/;" kind:function line:11 +GetMap ../quickmap.py /^def GetMap(parrX, parrY, windowSizeX=12, windowSizeY=8, extendXRate=1, extendYRate=1, line=False, passO=False, maxXPower=1, inverseK=False):$/;" kind:function line:20 GetMap ../sound/quickmap.py /^def GetMap(parrX, parrY, windowX = 12, windowY = 8, line = False, passO = False):$/;" kind:function line:11 GetMap ../va/quickmap.py /^def GetMap(parrX, parrY, windowX = 12, windowY = 8, line = False, passO = False):$/;" kind:function line:11 HallEffect.py ../hall/HallEffect.py 1;" kind:file line:1 @@ -33,7 +33,9 @@ dataset ../input/dataInput.py /^dataset=numpy.loadtxt(sys.argv[1], delimiter=' ' dataset ../sound/dataInput.py /^dataset=numpy.loadtxt(sys.argv[1], delimiter=' ')$/;" kind:variable line:13 doLogin ../phySpider.py /^def doLogin():$/;" kind:function line:30 doTest ../phySpider.py /^def doTest(expNum, weekNum, cookieStr):$/;" kind:function line:41 +dotMultiply ../quickmap.py /^def dotMultiply(vctA, vctB):$/;" kind:function line:11 draw ../va/va.py /^from quickmap import GetMap as draw$/;" kind:namespace line:4 +draw1.py ../ThermalConductivity/draw1.py 1;" kind:file line:1 dumpWebpage ../phySpider.py /^def dumpWebpage(content, filePath):$/;" kind:function line:36 en.py ../input/en.py 1;" kind:file line:1 errorPageDump ../phySpider.py /^errorPageDump = '\/home\/recolic\/tmp\/phySpiderDump.html'$/;" kind:variable line:15 @@ -72,12 +74,13 @@ leastsq ../va/quickmap.py /^from scipy.optimize import leastsq$/;" kind:namespac lineFunc ../hall/HallEffect.py /^def lineFunc(kb, i):$/;" kind:function line:60 lineFunc ../hall/HallEffect2.py /^def lineFunc(kb, v):$/;" kind:function line:59 lineFunc ../oil/oil0.py /^def lineFunc(kb, v):$/;" kind:function line:21 -lineFunc ../quickmap.py /^ def lineFunc(kb, v):$/;" kind:function line:21 +lineFunc ../quickmap.py /^ def lineFunc(k, x):$/;" kind:function line:31 lineFunc ../sound/quickmap.py /^ def lineFunc(kb, v):$/;" kind:function line:21 lineFunc ../va/quickmap.py /^ def lineFunc(kb, v):$/;" kind:function line:21 lossFunc ../hall/HallEffect.py /^lossFunc = lambda kb, i, v : lineFunc(kb, i) - v$/;" kind:variable line:64 lossFunc ../hall/HallEffect2.py /^lossFunc = lambda kb, v, i : lineFunc(kb, v) - i$/;" kind:variable line:63 lossFunc ../oil/oil0.py /^lossFunc = lambda kb, v, i : lineFunc(kb, v) - i$/;" kind:variable line:25 +lossFunc ../quickmap.py /^ def lossFunc(k, x, y): return abs(lineFunc(k, x) - y)$/;" kind:function line:37 m_cookie ../phySpider.py /^ m_cookie=m_cookie[0:len(m_cookie)-2]$/;" kind:variable line:99 m_cookie ../phySpider.py /^ m_cookie = cookieFile.readline()$/;" kind:variable line:97 m_cookie ../phySpider.py /^ m_cookie = input()$/;" kind:variable line:102 @@ -123,6 +126,7 @@ px ../oil/oil0.py /^px=numpy.linspace(0,maxX,1000)$/;" kind:variable line:39 py ../hall/HallEffect.py /^py=k*px+b$/;" kind:variable line:79 py ../hall/HallEffect2.py /^py=k*px+b$/;" kind:variable line:78 py ../oil/oil0.py /^py=k*px+b$/;" kind:variable line:40 +quickmap ../test.py /^import quickmap$/;" kind:namespace line:1 quickmap.py ../quickmap.py 1;" kind:file line:1 quickmap.py ../sound/quickmap.py 1;" kind:file line:1 quickmap.py ../va/quickmap.py 1;" kind:file line:1 @@ -151,13 +155,14 @@ sys ../oil/oil0.py /^import numpy, sys$/;" kind:namespace line:6 sys ../phySpider.py /^import sys$/;" kind:namespace line:7 sys ../sound/dataInput.py /^import sys$/;" kind:namespace line:7 sys ../va/va.py /^import sys$/;" kind:namespace line:3 +test.py ../test.py 1;" kind:file line:1 time ../input/dataInput.py /^print('import time')$/;" kind:namespace line:16 time ../input/en.py /^print('import time')$/;" kind:namespace line:15 time ../sound/dataInput.py /^print('import time')$/;" kind:namespace line:16 toFloat ../hall/HallEffect.py /^def toFloat(sstr):$/;" kind:function line:85 toFloat ../hall/HallEffect2.py /^def toFloat(sstr):$/;" kind:function line:84 toFloat ../oil/oil0.py /^def toFloat(sstr):$/;" kind:function line:46 -toFloat ../quickmap.py /^ def toFloat(sstr):$/;" kind:function line:53 +toFloat ../quickmap.py /^ def toFloat(sstr):$/;" kind:function line:70 toFloat ../sound/quickmap.py /^ def toFloat(sstr):$/;" kind:function line:53 toFloat ../va/quickmap.py /^ def toFloat(sstr):$/;" kind:function line:53 tryDump ../phyCracker.py /^def tryDump(sid):$/;" kind:function line:57 @@ -168,5 +173,7 @@ va.py ../va/va.py 1;" kind:file line:1 weekNumberList ../phySpider.py /^weekNumberList = [12,13,14,15,16,17]$/;" kind:variable line:11 x ../DrawPoint.py /^x=xrc$/;" kind:variable line:7 xrc ../DrawPoint.py /^xrc=[0.0, 2.0, 4.0, 10.0, 20.0, 22.0, 25.0, 30.0, 33.0, 35.0, 37.0, 38.0, 38.5, 39.0, 39.6, 40.0, 40.5, 41.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 49.0, 50.0, 53.0, 55.0, 60.0]$/;" kind:variable line:6 +xrc ../test.py /^xrc=[0.0, 2.0, 4.0, 10.0, 20.0, 22.0, 25.0, 30.0, 33.0, 35.0, 37.0, 38.0, 38.5, 39.0, 39.6, 40.0, 40.5, 41.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 49.0, 50.0, 53.0, 55.0, 60.0]$/;" kind:variable line:4 y ../DrawPoint.py /^y=[abs(yi) for yi in yrc]$/;" kind:variable line:8 yrc ../DrawPoint.py /^yrc=[-6.77, -6.78, -6.78, -6.76, -6.73, -6.73, -6.72, -6.70, -6.69, -6.67, -6.60, -6.45, -6.37, -6.20, -5.99, -5.77, -5.45, -5.07, -3.52, -2.87, -2.36, -2.08, -1.77, -1.55, -1.40, -1.26, -0.97, -0.84, -0.64]$/;" kind:variable line:5 +yrc ../test.py /^yrc=[-6.77, -6.78, -6.78, -6.76, -6.73, -6.73, -6.72, -6.70, -6.69, -6.67, -6.60, -6.45, -6.37, -6.20, -5.99, -5.77, -5.45, -5.07, -3.52, -2.87, -2.36, -2.08, -1.77, -1.55, -1.40, -1.26, -0.97, -0.84, -0.64]$/;" kind:variable line:3 diff --git a/DrawPoint.py b/DrawPoint.py deleted file mode 100644 index 3607237..0000000 --- a/DrawPoint.py +++ /dev/null @@ -1,19 +0,0 @@ -import numpy -import matplotlib.pyplot as plt -from matplotlib import rcParams -# Points here! -yrc=[-6.77, -6.78, -6.78, -6.76, -6.73, -6.73, -6.72, -6.70, -6.69, -6.67, -6.60, -6.45, -6.37, -6.20, -5.99, -5.77, -5.45, -5.07, -3.52, -2.87, -2.36, -2.08, -1.77, -1.55, -1.40, -1.26, -0.97, -0.84, -0.64] -xrc=[0.0, 2.0, 4.0, 10.0, 20.0, 22.0, 25.0, 30.0, 33.0, 35.0, 37.0, 38.0, 38.5, 39.0, 39.6, 40.0, 40.5, 41.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 49.0, 50.0, 53.0, 55.0, 60.0] -x=xrc -y=[abs(yi) for yi in yrc] - -# Draw function map. -rcParams['grid.linestyle']='-' -rcParams['grid.color'] = 'blue' -rcParams['grid.linewidth'] = 0.2 -plt.figure(figsize=(8,6)) # Change 8 to yMax here. -plt.scatter(x,y,color="red",label="Sample Point",linewidth=3) -px=numpy.linspace(0,65,1000) -plt.legend() -plt.grid() -plt.show() \ No newline at end of file diff --git a/ThermalConductivity/dataL b/ThermalConductivity/dataL new file mode 100644 index 0000000..a21202d --- /dev/null +++ b/ThermalConductivity/dataL @@ -0,0 +1,7 @@ +B: d h mm +99.78 99.72 99.72 99.68 99.70 +8.26 8.40 8.42 8.34 8.20 + +C: d h mm +99.82 99.70 99.72 99.72 99.86 +9.86 9.90 9.88 9.74 9.82 diff --git a/ThermalConductivity/dataT b/ThermalConductivity/dataT new file mode 100644 index 0000000..492889d --- /dev/null +++ b/ThermalConductivity/dataT @@ -0,0 +1,72 @@ +Init: Ta = 0.3 + Tc + +min Ta Tc(^C) +min T1 T2(^C) + +0 18.7 19.4 +2 36.0 19.4 +4 47.8 20.0 +6 50.2 21.6 +8 50.3 23.3 +10 50.2 25.0 +12 50.3 26.8 +14 50.4 28.3 +16 50.4 29.4 +18 50.5 30.7 +20 50.5 31.8 +22 50.5 32.9 +24 50.5 33.5 +26 50.6 34.3 +28 50.5 34.9 +30 50.6 35.6 +32 50.5 36.1 +34 50.7 36.7 +36 50.8 37.0 +38 50.8 37.5 +40 50.8 37.8 +42 50.8 38.2 +44 50.8 38.5 +46 50.8 38.8 +48 50.9 39.0 +50 50.9 39.3 +52 50.9 39.5 +54 50.9 39.6 +56 50.9 39.8 +58 50.9 39.9 +60 50.9 40.1 +62 50.9 40.2 +64 50.9 40.3 +66 51.0 40.4 +68 51.0 40.6 +70 51.0 40.6 +72 51.1 40.7 +74 51.1 40.8 +76 51.1 40.8 +78 51.1 40.9 +80 51.1 41.0 +82 51.1 41.0 +84 51.1 41.0 +86 51.1 41.0 +88 51.1 41.0 +90 51.2 41.0 +92 51.2 41.0 + +t(s) Tc(^C) +0 43.2 +30 42.9 +60 42.5 +90 42.2 +120 41.9 +150 41.5 +180 41.2 +210 40.9 +240 40.5 +270 40.3 +300 40.0 +330 39.7 +360 39.4 +390 39.1 +420 38.8 +450 38.5 +480 38.2 + diff --git a/ThermalConductivity/draw1.py b/ThermalConductivity/draw1.py new file mode 100755 index 0000000..6fee119 --- /dev/null +++ b/ThermalConductivity/draw1.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 + +minutes = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92] +rawTa = [18.7, 36.0, 47.8, 50.2, 50.3, 50.2, 50.3, 50.4, 50.4, 50.5, 50.5, 50.5, 50.5, 50.6, 50.5, 50.6, 50.5, 50.7, 50.8, 50.8, 50.8, 50.8, 50.8, 50.8, 50.9, 50.9, 50.9, 50.9, 50.9, 50.9, 50.9, 50.9, 50.9, 51.0, 51.0, 51.0, 51.1, 51.1, 51.1, 51.1, 51.1, 51.1, 51.1, 51.1, 51.1, 51.2, 51.2] +rawTa = [Ti - 0.3 for Ti in rawTa] +rawTc = [19.4, 19.4, 20.0, 21.6, 23.3, 25.0, 26.8, 28.3, 29.4, 30.7, 31.8, 32.9, 33.5, 34.3, 34.9, 35.6, 36.1, 36.7, 37.0, 37.5, 37.8, 38.2, 38.5, 38.8, 39.0, 39.3, 39.5, 39.6, 39.8, 39.9, 40.1, 40.2, 40.3, 40.4, 40.6, 40.6, 40.7, 40.8, 40.8, 40.9, 41.0, 41.0, 41.0, 41.0, 41.0, 41.0, 41.0] + +import sys +sys.path.append("..") +import quickmap + +##for powerTest in range(16): +## quickmap.GetMap(minutes, rawTa, line=True, maxXPower=powerTest)#, inverseK=True) +##for powerTest in range(16): +## quickmap.GetMap(minutes, rawTa, line=True, maxXPower=powerTest, inverseK=True) +#for powerTest in range(16): +# print(">>>", powerTest) +# quickmap.GetMap(minutes, rawTc, line=True, maxXPower=powerTest)#, inverseK=True) +##for powerTest in range(16): +## quickmap.GetMap(minutes, rawTc, line=True, maxXPower=powerTest, inverseK=True) +quickmap.GetMap(minutes, rawTa) +quickmap.GetMap(minutes, rawTc, line=True, maxXPower=9) \ No newline at end of file diff --git a/ThermalConductivity/draw2.py b/ThermalConductivity/draw2.py new file mode 100755 index 0000000..27f6421 --- /dev/null +++ b/ThermalConductivity/draw2.py @@ -0,0 +1,10 @@ +#!/usr/bin/env python3 + +time = [0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330, 360, 390, 420, 450, 480] +tc = [43.2, 42.9, 42.5, 42.2, 41.9, 41.5, 41.2, 40.9, 40.5, 40.3, 40.0, 39.7, 39.4, 39.1, 38.8, 38.5, 38.2] + +import sys +sys.path.append("..") +import quickmap + +quickmap.GetMap(time, tc, line=True) diff --git a/quickmap.py b/quickmap.py index b8863c2..6c455bc 100644 --- a/quickmap.py +++ b/quickmap.py @@ -18,6 +18,18 @@ def dotMultiply(vctA, vctB): return ans def GetMap(parrX, parrY, windowSizeX=12, windowSizeY=8, extendXRate=1, extendYRate=1, line=False, passO=False, maxXPower=1, inverseK=False): + ''' + Arguments: + parrX and parrY: array of coordinates of points. Ex: GetMap([1,2,3,4,5], [1,2,3,4,5]) -> y=x + line: Should I draw a fitting line? + passO: Should the fitting line pass (0,0)? That's saying, should k0 be zero? + maxXPower: If I should draw a fitting line, what polynomial function should I use? Ex: GetMap([1,2,3,4,5], [1,4,9,16,25], line=True, maxXPower) -> y=x^2 + inverseK: Usually, I'm drawing the curl `y=KX`, while K=[k0,k1,k2,...], X=[x^0,x^1,x^2,...]. If this switch is set, I'll drawing the curl `KY=x`. Don't worry, this switch is transparent to you. + Ex: GetMap([0,1,1,4,4,9,9], [0,1,-1,2,-2,3,-3], maxXPower=2, line=True, inverseK=True) -> y^2=x + + ReturnValue: + void + ''' print('Generic-GetMap by Recolic.') arrX, arrY = parrX, parrY maxX, maxY = max(arrX) * extendXRate, max(arrY) * extendYRate @@ -42,10 +54,10 @@ def GetMap(parrX, parrY, windowSizeX=12, windowSizeY=8, extendXRate=1, extendYRa kInit[0] = 0 # guarantee passO. if inverseK: kFinal, _ = leastsq(lossFunc, kInit, args=(Y, X)) - print('Fit line done. k^-1=', kFinal) + print('Fitting line done. k^-1=', kFinal) else: kFinal, _ = leastsq(lossFunc, kInit, args=(X, Y)) - print('Fit line done. k=', kFinal) + print('Fitting line done. k=', kFinal) else: print('Drawing map without fitting a line...') diff --git a/sound/quickmap.py b/sound/quickmap.py index e0eb9bf..c2ced52 100644 --- a/sound/quickmap.py +++ b/sound/quickmap.py @@ -9,7 +9,7 @@ import matplotlib.pyplot as plt from matplotlib import rcParams def GetMap(parrX, parrY, windowX = 12, windowY = 8, line = False, passO = False): - print('Generic-GetMap by Recolic.') + print('This quickmap.py is deleted becaused of out of date!!!') arrX, arrY = parrX, parrY maxX, maxY = max(arrX)*1.2, max(arrY)*1.25 @@ -54,4 +54,4 @@ def GetMap(parrX, parrY, windowX = 12, windowY = 8, line = False, passO = False) if sstr == '': return 0.0 else: - return float(sstr) \ No newline at end of file + return float(sstr) diff --git a/va/quickmap.py b/va/quickmap.py index e0eb9bf..c2ced52 100644 --- a/va/quickmap.py +++ b/va/quickmap.py @@ -9,7 +9,7 @@ import matplotlib.pyplot as plt from matplotlib import rcParams def GetMap(parrX, parrY, windowX = 12, windowY = 8, line = False, passO = False): - print('Generic-GetMap by Recolic.') + print('This quickmap.py is deleted becaused of out of date!!!') arrX, arrY = parrX, parrY maxX, maxY = max(arrX)*1.2, max(arrY)*1.25 @@ -54,4 +54,4 @@ def GetMap(parrX, parrY, windowX = 12, windowY = 8, line = False, passO = False) if sstr == '': return 0.0 else: - return float(sstr) \ No newline at end of file + return float(sstr) -- GitLab