Changeset 5120 for anuga_core/source/anuga/geospatial_data
- Timestamp:
- Mar 5, 2008, 8:00:37 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
anuga_core/source/anuga/geospatial_data/test_geospatial_data.py
r4920 r5120 13 13 from anuga.coordinate_transforms.redfearn import degminsec2decimal_degrees 14 14 from anuga.utilities.anuga_exceptions import ANUGAError 15 from anuga.utilities.system_tools import get_host_name 15 16 16 17 class Test_Geospatial_data(unittest.TestCase): … … 1796 1797 """test if the results from spilt are disjoin sets""" 1797 1798 1798 points = [[1.0, 1.0], [1.0, 2.0],[1.0, 3.0], [1.0, 4.0], [1.0, 5.0], 1799 [2.0, 1.0], [2.0, 2.0],[2.0, 3.0], [2.0, 4.0], [2.0, 5.0], 1800 [3.0, 1.0], [3.0, 2.0],[3.0, 3.0], [3.0, 4.0], [3.0, 5.0], 1801 [4.0, 1.0], [4.0, 2.0],[4.0, 3.0], [4.0, 4.0], [4.0, 5.0], 1802 [5.0, 1.0], [5.0, 2.0],[5.0, 3.0], [5.0, 4.0], [5.0, 5.0]] 1803 attributes = {'depth':[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1804 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], 1805 'speed':[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1806 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]} 1807 G = Geospatial_data(points, attributes) 1808 1809 factor = 0.21 1810 1811 #will return G1 with 10% of points and G2 with 90% 1812 G1, G2 = G.split(factor,100) 1813 1814 assert allclose(len(G), len(G1)+len(G2)) 1815 assert allclose(round(len(G)*factor), len(G1)) 1816 1817 P = G1.get_data_points(absolute=False) 1818 assert allclose(P, [[5.0,4.0],[4.0,3.0],[4.0,2.0],[3.0,1.0],[2.0,3.0]]) 1819 1820 A = G1.get_attributes() 1821 assert allclose(A,[24, 18, 17, 11, 8]) 1799 #below is a work around until the randint works on cyclones compute nodes 1800 if get_host_name()[8:9]!='0': 1801 1802 1803 points = [[1.0, 1.0], [1.0, 2.0],[1.0, 3.0], [1.0, 4.0], [1.0, 5.0], 1804 [2.0, 1.0], [2.0, 2.0],[2.0, 3.0], [2.0, 4.0], [2.0, 5.0], 1805 [3.0, 1.0], [3.0, 2.0],[3.0, 3.0], [3.0, 4.0], [3.0, 5.0], 1806 [4.0, 1.0], [4.0, 2.0],[4.0, 3.0], [4.0, 4.0], [4.0, 5.0], 1807 [5.0, 1.0], [5.0, 2.0],[5.0, 3.0], [5.0, 4.0], [5.0, 5.0]] 1808 attributes = {'depth':[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1809 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], 1810 'speed':[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1811 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]} 1812 G = Geospatial_data(points, attributes) 1813 1814 factor = 0.21 1815 1816 #will return G1 with 10% of points and G2 with 90% 1817 G1, G2 = G.split(factor,100) 1818 1819 assert allclose(len(G), len(G1)+len(G2)) 1820 assert allclose(round(len(G)*factor), len(G1)) 1821 1822 P = G1.get_data_points(absolute=False) 1823 assert allclose(P, [[5.0,4.0],[4.0,3.0],[4.0,2.0],[3.0,1.0],[2.0,3.0]]) 1824 1825 A = G1.get_attributes() 1826 assert allclose(A,[24, 18, 17, 11, 8]) 1822 1827 1823 1828 def test_split1(self): 1824 1829 """test if the results from spilt are disjoin sets""" 1825 from RandomArray import randint,seed 1826 seed(100,100) 1827 a_points = randint(0,999999,(10,2)) 1828 points = a_points.tolist() 1829 # print points 1830 1831 G = Geospatial_data(points) 1832 1833 factor = 0.1 1834 1835 #will return G1 with 10% of points and G2 with 90% 1836 G1, G2 = G.split(factor,100) 1837 1838 # print 'G1',G1 1839 assert allclose(len(G), len(G1)+len(G2)) 1840 assert allclose(round(len(G)*factor), len(G1)) 1841 1842 P = G1.get_data_points(absolute=False) 1843 assert allclose(P, [[982420.,28233.]]) 1830 #below is a work around until the randint works on cyclones compute nodes 1831 if get_host_name()[8:9]!='0': 1832 1833 from RandomArray import randint,seed 1834 seed(100,100) 1835 a_points = randint(0,999999,(10,2)) 1836 points = a_points.tolist() 1837 # print points 1838 1839 G = Geospatial_data(points) 1840 1841 factor = 0.1 1842 1843 #will return G1 with 10% of points and G2 with 90% 1844 G1, G2 = G.split(factor,100) 1845 1846 # print 'G1',G1 1847 assert allclose(len(G), len(G1)+len(G2)) 1848 assert allclose(round(len(G)*factor), len(G1)) 1849 1850 P = G1.get_data_points(absolute=False) 1851 assert allclose(P, [[982420.,28233.]]) 1844 1852 1845 1853 … … 1852 1860 """ 1853 1861 from cmath import cos 1854 1855 filename = tempfile.mktemp(".csv") 1856 file = open(filename,"w") 1857 file.write("x,y,elevation \n") 1858 1859 for i in range(-5,6): 1860 for j in range(-5,6): 1861 #this equation made surface like a circle ripple 1862 z = abs(cos(((i*i) + (j*j))*.1)*2) 1863 # print 'x,y,f',i,j,z 1864 file.write("%s, %s, %s\n" %(i, j, z)) 1865 1866 file.close() 1867 1868 value, alpha = find_optimal_smoothing_parameter(data_file=filename, 1869 alpha_list=[0.0001, 0.01, 1], 1870 mesh_file=None, 1871 mesh_resolution=3, 1872 north_boundary=5, 1873 south_boundary=-5, 1874 east_boundary=5, 1875 west_boundary=-5, 1876 plot_name=None, 1877 seed_num=100000, 1878 verbose=False) 1879 1880 os.remove(filename) 1881 1882 # print value, alpha 1883 assert (alpha==0.01) 1862 1863 #below is a work around until the randint works on cyclones compute nodes 1864 if get_host_name()[8:9]!='0': 1865 1866 filename = tempfile.mktemp(".csv") 1867 file = open(filename,"w") 1868 file.write("x,y,elevation \n") 1869 1870 for i in range(-5,6): 1871 for j in range(-5,6): 1872 #this equation made surface like a circle ripple 1873 z = abs(cos(((i*i) + (j*j))*.1)*2) 1874 # print 'x,y,f',i,j,z 1875 file.write("%s, %s, %s\n" %(i, j, z)) 1876 1877 file.close() 1878 1879 value, alpha = find_optimal_smoothing_parameter(data_file=filename, 1880 alpha_list=[0.0001, 0.01, 1], 1881 mesh_file=None, 1882 mesh_resolution=3, 1883 north_boundary=5, 1884 south_boundary=-5, 1885 east_boundary=5, 1886 west_boundary=-5, 1887 plot_name=None, 1888 seed_num=100000, 1889 verbose=False) 1890 1891 os.remove(filename) 1892 1893 # print value, alpha 1894 assert (alpha==0.01) 1884 1895 1885 1896 def test_find_optimal_smoothing_parameter1(self): … … 1891 1902 NOTE the random number seed is provided to control the results 1892 1903 """ 1893 from cmath import cos 1894 from anuga.pmesh.mesh_interface import create_mesh_from_regions 1895 1896 filename = tempfile.mktemp(".csv") 1897 file = open(filename,"w") 1898 file.write("x,y,elevation \n") 1899 1900 for i in range(-5,6): 1901 for j in range(-5,6): 1902 #this equation made surface like a circle ripple 1903 z = abs(cos(((i*i) + (j*j))*.1)*2) 1904 # print 'x,y,f',i,j,z 1905 file.write("%s, %s, %s\n" %(i, j, z)) 1906 1907 file.close() 1908 poly=[[5,5],[5,-5],[-5,-5],[-5,5]] 1909 internal_poly=[[[[1,1],[1,-1],[-1,-1],[-1,1]],.5]] 1910 mesh_filename= tempfile.mktemp(".msh") 1911 1912 create_mesh_from_regions(poly, 1913 boundary_tags={'back': [2], 1914 'side': [1,3], 1915 'ocean': [0]}, 1916 maximum_triangle_area=3, 1917 interior_regions=internal_poly, 1918 filename=mesh_filename, 1919 use_cache=False, 1920 verbose=False) 1921 1922 value, alpha = find_optimal_smoothing_parameter(data_file=filename, 1923 alpha_list=[0.0001, 0.01, 1], 1924 mesh_file=mesh_filename, 1925 plot_name=None, 1926 seed_num=174, 1927 verbose=False) 1928 1929 os.remove(filename) 1930 os.remove(mesh_filename) 1931 1932 # print value, alpha 1933 assert (alpha==0.01) 1904 #below is a work around until the randint works on cyclones compute nodes 1905 if get_host_name()[8:9]!='0': 1906 1907 from cmath import cos 1908 from anuga.pmesh.mesh_interface import create_mesh_from_regions 1909 1910 filename = tempfile.mktemp(".csv") 1911 file = open(filename,"w") 1912 file.write("x,y,elevation \n") 1913 1914 for i in range(-5,6): 1915 for j in range(-5,6): 1916 #this equation made surface like a circle ripple 1917 z = abs(cos(((i*i) + (j*j))*.1)*2) 1918 # print 'x,y,f',i,j,z 1919 file.write("%s, %s, %s\n" %(i, j, z)) 1920 1921 file.close() 1922 poly=[[5,5],[5,-5],[-5,-5],[-5,5]] 1923 internal_poly=[[[[1,1],[1,-1],[-1,-1],[-1,1]],.5]] 1924 mesh_filename= tempfile.mktemp(".msh") 1925 1926 create_mesh_from_regions(poly, 1927 boundary_tags={'back': [2], 1928 'side': [1,3], 1929 'ocean': [0]}, 1930 maximum_triangle_area=3, 1931 interior_regions=internal_poly, 1932 filename=mesh_filename, 1933 use_cache=False, 1934 verbose=False) 1935 1936 value, alpha = find_optimal_smoothing_parameter(data_file=filename, 1937 alpha_list=[0.0001, 0.01, 1], 1938 mesh_file=mesh_filename, 1939 plot_name=None, 1940 seed_num=174, 1941 verbose=False) 1942 1943 os.remove(filename) 1944 os.remove(mesh_filename) 1945 1946 # print value, alpha 1947 assert (alpha==0.01) 1934 1948 1935 1949 def test_find_optimal_smoothing_parameter2(self):
Note: See TracChangeset
for help on using the changeset viewer.