if np.size(ControlPointsArray[i]) == 1: print 'RARP' cX = cY = 0 print 'Centroid pos', cX, cY CS = 0 print 'Centroid Size', CS Area = 0 print 'Area:', Area outfile.write( '#Contour: {0} Centroid: [{1},{2}] Centroid Size: {3} Area: {4}\n' .format(i, cX, cY, CS, Area)) else: cX, cY = IT.calculateCentroidPosition(ControlPointsArray[i][:, 0], ControlPointsArray[i][:, 1]) print 'Centroid pos', cX, cY CS = IT.calculateCentroidSize(ControlPointsArray[i][:, 0], ControlPointsArray[i][:, 1]) print 'Centroid Size', CS Area = IT.calculateClosedContourArea(ControlPointsArray[i][:, 0], ControlPointsArray[i][:, 1]) print 'Area:', Area outfile.write( '#Contour: {0} Centroid: [{1},{2}] Centroid Size: {3} Area: {4}\n' .format(i, cX, cY, CS, Area)) np.savetxt(outfile, ControlPointsArray[i]) #with file(workingDir+'Results.txt','w') as outfile: #outfile.write('#Z position: {0}\n'.format(5)) #outfile.write('#Contraction length: {0}\n'.format(np.shape(sortedContours)[0])) #for i in range(np.shape(sortedContours)[0]): #print i #cX,cY=IT.calculateCentroidPosition(ControlPointsArray[i][:,0],ControlPointsArray[i][:,1])
#Step 2: Perform PSL regression pls=PLSRegression(n_components=3) pls.fit(t0,t1) test=pls.predict(np.ravel(rPoints[TestShape]).reshape(1,-1)) #PSLR needs to work with vectors in teh form [[]], its weird test=test.reshape((cShape[1],cShape[2])) ax3[1,0].plot(rPoints[TestShape][:,0],rPoints[TestShape][:,1]*-1,'ob') ax3[1,0].plot(cPoints[TestShape][:,0],cPoints[TestShape][:,1]*-1,'or') ax3[1,0].plot(test[:,0],test[:,1]*-1,'xk') ax3[1,0].axis('equal') #Calculate error RMSE=np.sqrt(np.mean((cPoints[TestShape]-test)**2)) CS=IT.calculateCentroidSize(cPoints[TestShape][:,0],cPoints[TestShape][:,1]) print RMSE #print CS #print RMSE/CS #Calcualte the bounding box bbox=[np.min(cPoints[TestShape][:,0]),np.max(cPoints[TestShape][:,0]),np.min(cPoints[TestShape][:,1]),np.max(cPoints[TestShape][:,1])] unitLength=np.sqrt((bbox[0]-bbox[1])**2 + (bbox[2]-bbox[3])**2) print unitLength print RMSE/unitLength*100,'%' plt.show()
ax.scatter(MPoints[i,0],MPoints[i,1], facecolors='y', edgecolors='y') #Seed the slave control points between the masters with equidistance spacing. print 'Master Points\n',MPoints distVector=IT.calculateDistanceVector(contourData,MPoints) print 'Dist Vector\n',distVector controlPoints=IT.seedSlavePoints(distVector,contourData,MPoints,seedNumber,ax) ax.plot(controlPoints[:,0],controlPoints[:,1],'ob') plt.draw() #Calculate the centroid size cx,cy=IT.calculateCentroidPosition(controlPoints[:,0],controlPoints[:,1]) ax.plot(cx,cy,'or') CS=IT.calculateCentroidSize(controlPoints[:,0],controlPoints[:,1]) print 'Centroid Size is',CS #Calculate the area of the contour Area1=IT.calculateClosedContourArea(controlPoints[:,0],controlPoints[:,1]) print Area1/1e6 Area2=IT.PolygonArea(np.hstack([controlPoints[:,0],controlPoints[0,0]]),np.hstack([controlPoints[:,1],controlPoints[0,1]])) print Area2/1e6 #Write outfile np.savetxt(workingDir+'spiralControlPoints',controlPoints) print 'Finished createControlPoints' plt.show()