精华内容
下载资源
问答
  • 提出了一种适合等值线图裁剪处理的算法,该算法通过构造扫描带,然后对落在每条扫描带内的线段进行处理,从而获得等值线在裁剪多边形内的部分。用实际的大量数据进行了多边形区域裁剪的测试,实践证明,这种方法可行...
  • 学习根据钻孔资料编制构造等高线图的方法 学会根据构造等高线图分析构造特征 吉林大学地球科学学院刘志宏 实习内容 一构造等高线图的概念 构造等高线图也叫构造等值线图或构造图它是利用等高线 反映埋藏在地下某一...
  • ECLIPSE WORKFLOW TRAINING ECLIPSE工作流练习从油藏... 油藏基本条件 该油藏面积为1092311225384 feet为一背斜油藏两条南北向的主断层穿过油藏分别为Fault1和Fault2另有一条次断层Fault3已知油藏顶面构造等值线图TOP
  • 通过构造有效网格、建立具有顶点和的路径栅格,在等值线追踪过程中唯一确定下一个等值点,能够快速生成等值线图,然后根据自身特点对等值线进行光滑,最后,为了方便查看不同区域的噪声影响情况,需要对等值线用不同...
  • 为了真实地再现胡状集油田胡七南断块的地下地质模型,在三维地震资料分析构造特征的基础上,利用较密井网资料,绘制主要断层的断面等值线图,对主断层的断层面形态及局部构造高点进行构造的确认,使构造更加精确。...
  • 根据翟镇井田11煤层开采揭露的地质资料的统计分析,获得该井田断层性质、落差、走向、倾角等分布特征,在介绍断层分形特征的计算方法基础上,绘制了翟镇井田11煤层断裂构造分维等值线图,并在此基础上对研究区进行了构造...
  • 本文结合现有的钻井及地震资料分析了方斗山构造带的构造特征及地层特征,绘制了石炭系及黄龙组地层等值线图,描述了其构造演化过程,分析了石柱古隆起对该区油气聚集的影响,最后根据现有分析选择中台子构造为该区域下步...
  • 最近希望在android上实现在百度地图绘制重力异常图(地形图),查了一下官方提供了一个热力图绘制方法,效果很好,但只能显示官方提供的人员流量数据,所以退一步试着实现简单的等值线图绘制,不难,着急的朋友完全...

    最近希望在android上实现在百度地图绘制重力异常图(地形图),查了一下官方提供了一个热力图绘制方法,效果很好,但只能显示官方提供的人员流量数据,所以退一步试着实现简单的等值线图绘制,不难,着急的朋友完全可以仿照下例修改使用:

    主要方法:

    ①对离散点构造矩形区域并插值:
    insertValue(List longitude,List latitude ,List value,int row ,int col);
    参数含义:longitude/latitdue/value测点经、纬度和测值列表,顺序依次对应,row/col目标插值矩阵行列数;

    对插值矩阵实现等值线算法 :
    createContour(float[ ][ ] data,int ilb,int iub, int jlb, int jub,float[ ] insert_longitude,float[ ] insert_latitude,int n ,float[ ] z);
    参数含义:data经插值后得到的矩阵,ilb/iub/jlb/jub很多时候我们仅需要对一部分区域绘制等值线,这四个参数决定了取data矩阵中哪部分计算等值线,取值0~(row-1)或者0~(col-1),insert_longitude/latitude插值后对应矩阵点横纵坐标值(经纬度),n测线的数量,越大等值线越密,z的长度与n对应,指示每段等值线间要间隔的数值;

    ③在BaiduMap上绘制等值线:

    drawCoutour(float longitude1,float latitude1,float longitude2,float latitude2,Baidumap);

    前四个参数指示了要绘制直线的起始位置,并传入一个发生绘制的地图组件;


    public  void insertValue(List longitude,List latitude,List value,int row_latitude,int col_longitude,int n) {
    
        		float max_longitude,min_longitude,max_latitude,min_latitude,add_longitude,add_latitude;
        		float insert_longitude[]=new float[col_longitude];
        		float insert_latitude[]=new float[row_latitude];  
        		float insert_value[][]=new float[row_latitude][col_longitude]; 
        		max_longitude=Collections.max(longitude);
        		min_longitude=Collections.min(longitude);
        		max_latitude=Collections.max(latitude);
        		min_latitude=Collections.min(latitude);
        		add_longitude=(max_longitude-min_longitude)/col_longitude;
        		add_latitude=(max_latitude-min_latitude)/row_latitude;
        		
        		for(int i=0;i<col_longitude;i++) {
        			insert_longitude[i]=min_longitude+add_longitude*i;
        		}
        		for(int j=0;j<row_latitude;j++) {
        			insert_latitude[j]=min_latitude+add_latitude*j;
        		}
        		
        		float max_distance=distance2(max_longitude,max_latitude,min_longitude,min_latitude);
        		for(int i=0;i<row_latitude;i++) {
        			for(int j=0;j<col_longitude;j++) {
        				float sum_distance=0,sum_arg=0;
        				for(int k=0;k<value.size();k++) {
        					float DIS=distance2(insert_longitude[j],insert_latitude[i],(Float) longitude.get(k),                                                  (Float) latitude.get(k));
        					float arg=1-DIS/max_distance;
                                            sum_arg+=Math.pow(arg,10);
        				}
        				float temp=(Float) longitude.get(2);
        				System.out.println("j="+j);
        				for(int k=0;k<value.size();k++) {
        					float DIS=distance2(insert_longitude[j],insert_latitude[i],(Float) longitude.get(k),                                                  (Float) latitude.get(k));
        					float arg=1-DIS/max_distance;
        					arg=(float) (Math.pow(arg, 10)/sum_arg);
        					insert_value[i][j]+=(Float) value.get(k)*arg;
        				}
        			}}
        		float max=0,min=insert_value[0][0];
        		for(int i=0;i<row_latitude;i++) {
        			for(int j=0;j<col_longitude;j++) {
        				if(insert_value[i][j]<min) {
        					min=insert_value[i][j];
        				}
        				else if(insert_value[i][j]>max) {
        					max=insert_value[i][j];
        				}
        			}}
        		float z[]=new float[n];
        		float add_z=(max-min)/n;
        		for(int i=0;i<n;i++) {
        			z[i]=add_z*i+min;
        			System.out.println("z="+z[i]);
        		}
        		createContour(insert_value, 0, row_latitude-1, 0, col_longitude-1, insert_latitude, insert_longitude, n                                   , z);   //注意在此处调用createContour↓方法进行等值线的计算 
        	}
     public void createContour(float[][] data, int ilb, int iub, int jlb, int jub, float [] x, float [] y, int nc, float [] z){
    double x1 = 0.0;
        	double x2 = 0.0;
        	double y1 = 0.0;
        	double y2 = 0.0;
        	int i,j,k,m;
        	int [] im = {0,1,1,0};
        	int [] jm = {0,0,1,1};
        	int [][][] castab=
        	{
        	{
        	{0,0,8},{0,2,5},{7,6,9}
        	},
        	{
        	{0,3,4},{1,3,1},{4,3,0}
        	},
        	{
        	{9,6,7},{5,2,0},{8,0,0}
        	}
        	};
        	
        	for (j=(jub-1);j>=jlb;j--) {
        	for (i=ilb;i<=iub-1;i++) {
        	double temp1,temp2;
        	temp1 = Math.min(d[i][j],d[i][j+1]);
        	temp2 = Math.min(d[i+1][j],d[i+1][j+1]);
        	dmin= Math.min(temp1,temp2);
        	temp1 = Math.max(d[i][j],d[i][j+1]);
        	temp2 = Math.max(d[i+1][j],d[i+1][j+1]);
        	dmax= Math.max(temp1,temp2);
        	if (dmax>=z[0]&&dmin<=z[nc-1]) {
        	for (k=0;k<nc;k++) {
        	if (z[k]>=dmin&&z[k]<=dmax) {
        	for (m=4;m>=0;m--) {
        	if (m>0) {
        	h[m] = d[i+im[m-1]][j+jm[m-1]]-z[k];
        	xh[m] = x[i+im[m-1]];
        	yh[m] = y[j+jm[m-1]];
        	} else {
        	h[0] = 0.25*(h[1]+h[2]+h[3]+h[4]);
        	xh[0]=0.5*(x[i]+x[i+1]);
        	yh[0]=0.5*(y[j]+y[j+1]);
        	}
        	if (h[m]>0.0) {
        	sh[m] = 1;
        	} else if (h[m]<0.0) {
        	sh[m] = -1;
        	} else
        	sh[m] = 0;
        	}
        	for (m=1;m<=4;m++) {
        	m1 = m;
        	m2 = 0;
        	if (m!=4) {
        	m3 = m+1;
        	} else {
        	m3 = 1;
        	}
        	case_value = castab[sh[m1]+1][sh[m2]+1][sh[m3]+1];
        	if (case_value!=0) {
        	switch (case_value) {
        	case 1: // Line between vertices 1 and 2
        	x1=xh[m1];
        	y1=yh[m1];
        	x2=xh[m2];
        	y2=yh[m2];
        	break;
        	case 2: // Line between vertices 2 and 3
        	x1=xh[m2];
        	y1=yh[m2];
        	x2=xh[m3];
        	y2=yh[m3];
        	break;
        	case 3: // Line between vertices 3 and 1
        	x1=xh[m3];
        	y1=yh[m3];
        	x2=xh[m1];
        	y2=yh[m1];
        	break;
        	case 4: // Line between vertex 1 and side 2-3
        	x1=xh[m1];
        	y1=yh[m1];
        	x2=xsect(m2,m3);
        	y2=ysect(m2,m3);
        	break;
        	case 5: // Line between vertex 2 and side 3-1
        	x1=xh[m2];
        	y1=yh[m2];
        	x2=xsect(m3,m1);
        	y2=ysect(m3,m1);
        	break;
        	case 6: //Line between vertex 3 and side 1-2
        	x1=xh[m3];
        	y1=yh[m3];
        	x2=xsect(m1,m2);
        	y2=ysect(m1,m2);
        	break;
        	case 7: // Line between sides 1-2 and 2-3
        	x1=xsect(m1,m2);
        	y1=ysect(m1,m2);
        	x2=xsect(m2,m3);
        	y2=ysect(m2,m3);
        	break;
        	case 8: // Line between sides 2-3 and 3-1
        	x1=xsect(m2,m3);
        	y1=ysect(m2,m3);
        	x2=xsect(m3,m1);
        	y2=ysect(m3,m1);
        	break;
        	case 9: // Line between sides 3-1 and 1-2
        	x1=xsect(m3,m1);
        	y1=ysect(m3,m1);
        	x2=xsect(m1,m2);
        	y2=ysect(m1,m2);
        	break;
        	default:
        	break;
        	}
        	this.drawContour((float)x1, (float)y1, (float)x2, (float)y2, baidumap);//注意在此调用drawContour绘制等值线
        	//System.out.println("绘制线段,从点("+x1+","+y1+")到("+x2+","+y2+")");
        	}}}}}}}}

    public void drawContour(float long1,float lat1,float long2,float lat2,BaiduMap baodumap) {
        	
            LatLng p1 = new LatLng(long1, lat1);
            LatLng p2 = new LatLng(long2, lat2);
            List<LatLng> points = new ArrayList<LatLng>();
            points.add(p1);
            points.add(p2);
        //绘制折线
            OverlayOptions ooPolyline = new PolylineOptions().width(10)
                    .color(0xAAFF0000).points(points);
            Polyline mPolyline = (Polyline)baidumap.addOverlay(ooPolyline);
        }
    //几个辅助方法
    public float distance2(float insert_longitude,float insert_latitude,float longitude,float latitude) {
        	return (float) (Math.pow((float) Math.pow((longitude-insert_longitude),2)+Math.pow((latitude-insert_latitude),2),1))       ;}
    
    private double xsect(int p1, int p2){
        	return(h[p2]*xh[p1]-h[p1]*xh[p2])/(h[p2]-h[p1]);
        	}
        	
    private double ysect(int p1, int p2){
        	return (h[p2]*yh[p1]-h[p1]*yh[p2])/(h[p2]-h[p1]);
        	}
    

    1.以下是不同测线数量的显示效果(用java graphics简单绘制),可以看到在要求精度不高的情况下可以有效实现等值线的绘制:


    2.第一个方法中List的使用例子:
            List<Float> longitude=new ArrayList<>();
    List<Float> latitude=new ArrayList<>();
    List<Float> value=new ArrayList<>();

    longitude.add((float) 100);//继续添加坐标值...
    latitude.add((float) 110);   //继续添加坐标值...
            value.add((float) 50);        //继续添加测点值...

    希望能帮到有需要的人。




    展开全文
  • AE绘制等值线的方法有两种:一种是通过TIN,一种是使用IDW等算法构造出Raster,再生成等值线图。 这里展示的是第二种方法。 /// <summary> /// 根据离散点生成等值线 /// </summary> public class ...

    AE绘制等值线的方法有两种:一种是通过TIN,一种是使用IDW等算法构造出Raster,再生成等值线图。

    这里展示的是第二种方法。

    /// <summary>
        /// 根据离散点生成等值线
        /// </summary>
        public class Dengzhixian
        {
            public void DrawDZX(AxMapControl mapControl, ILayer layer)
            {
                //定义等值线临时shapefile图层存放路径
                string ls_TempSavePath = @"C:\cem\dzx";

                if (!Directory.Exists(ls_TempSavePath))//如果不存在,则创建
                    Directory.CreateDirectory(ls_TempSavePath);

                DirectoryInfo di = new DirectoryInfo(ls_TempSavePath);
                FileInfo[] fi = null;
                fi = di.GetFiles();
                if (fi.Length != 0)//如果目录不为空,则删除目录,然后重建
                {
                    Directory.Delete(ls_TempSavePath, true);
                    Directory.CreateDirectory(ls_TempSavePath);
                }

                //获取地图实例
                IMap pMap = mapControl.Map;

                //提供访问成员,控制一个GeoDataset插值
                IInterpolationOp3 pInterpolationOp = new RasterInterpolationOpClass();

                IFeatureLayer pFeatLayer = layer as IFeatureLayer;
                // Calls function to open the point dataset from disk

                IFeatureClass pFeatCla = pFeatLayer.FeatureClass;
               

                // Create the input point object
                //创建输入点对象
                IGeoDataset pInputDataset = pFeatLayer as IGeoDataset;
               
                // Define the search radius
                //定义搜索半径,这个搜索是个什么搜索,尚未知。
                IRasterRadius pRadius = new RasterRadiusClass();
                object Missing = Type.Missing;
         //这个数值是设置搜索范围,7表示离该点最近的7个点为搜索范围
                pRadius.SetVariable(7, ref Missing);

                //Create FeatureClassDescriptor using a value field
                //根据数值字段创建一个FeatureClassDescriptor
                IFeatureClassDescriptor pFCDescriptor = new FeatureClassDescriptorClass();
                pFCDescriptor.Create(pFeatLayer.FeatureClass, null, "降雨量");

                //Set cellsize for output raster in the environment
                //设置栅格图像的单位大小,如果是以米为单位,大概就是25米,如果以度为单位就是0.001度
                object cellSizeProvider = 0.06;
                IRasterAnalysisEnvironment pEnv = pInterpolationOp as IRasterAnalysisEnvironment;
                pEnv.SetCellSize(esriRasterEnvSettingEnum.esriRasterEnvValue, ref cellSizeProvider);

                //Perform the interpolation
                //差值计算
         //出自帮助文档:指数距离。控制周围的意义插值后的价值点。不到一个百分点的影响力从遥远的高功率的结果。它可以是任何实数大于零,但最合理的结果将利用获得的0.5值3。一个常用的功率为2
                IRaster pOutRaster = pInterpolationOp.IDW(pFCDescriptor as IGeoDataset, 2, pRadius, ref Missing) as IRaster;

                //Add output into ArcMap as a raster layer   
                //IRasterLayer pOutRasLayer = new RasterLayerClass();
                //pOutRasLayer.CreateFromRaster(pOutRaster);
                //pOutRasLayer.Name = "栅格";
                //pMap.AddLayer(pOutRasLayer);

                IGeoDataset pGeoDataSet = pOutRaster as IGeoDataset;
                IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactory();
                IWorkspace pShpWorkspace = pWorkspaceFactory.OpenFromFile(ls_TempSavePath, 0);
                ISurfaceOp2 pSurfaceOp2 = new RasterSurfaceOpClass();
                IRasterAnalysisEnvironment pRasterAnalysisEnvironment = pSurfaceOp2 as IRasterAnalysisEnvironment;

                pRasterAnalysisEnvironment.Reset();
                pRasterAnalysisEnvironment.SetCellSize(esriRasterEnvSettingEnum.esriRasterEnvValue, ref cellSizeProvider);
                pRasterAnalysisEnvironment.OutWorkspace = pShpWorkspace;
                double dInterval = 5; //间距
                IGeoDataset pOutputDataSet = pSurfaceOp2.Contour(pGeoDataSet, dInterval, ref Missing, ref Missing);


                IFeatureClass pFeatureClass = pOutputDataSet as IFeatureClass;
                IFeatureLayer pFeatureLayer = new FeatureLayerClass();
                pFeatureLayer.FeatureClass = pFeatureClass;

                IGeoFeatureLayer pGeoFeatureLayer = pFeatureLayer as IGeoFeatureLayer;

                pGeoFeatureLayer.DisplayAnnotation = true;
                pGeoFeatureLayer.DisplayField = "Contour";
                pGeoFeatureLayer.Name = "等值线";

                pMap.AddLayer(pGeoFeatureLayer);
                mapControl.Refresh();
            }
        }

    转载于:https://www.cnblogs.com/yuxiuting/archive/2011/11/25/2263507.html

    展开全文
  • 孙村井田开采下组煤受到底板突水的威胁,通过对孙村井田下组煤地质资料...在介绍断层分形特征的计算方法基础上,绘制了孙村井田断裂构造分维等值线图,并对井田断裂构造复杂程度进行了分区,评价了各分区底板突水的危险性。
  • 结合Surfer软件绘制了断层分维的平面等值线图,并与该采区构造地质图进行对比,进行了采区构造复杂程度的量化分区。得出了受滑动构造影响四二采区断裂构造的复杂性具有明显的不均匀性,断裂构造分维值基本上反映出了四...
  • 依据线性构造走向玫瑰花图和密度等值线图可以发现,研究区呈现明显的分区性:西部分区线性构造展布以北东东、北东向为主,密度为全区最大;中区线性构造以北西向展布,与区域主要构造线方向一致,且密度最小;东部线性构造...
  • 以平煤七矿为例,利用分形理论计算了二1煤层底板断层构造的分维,与不同区域的研究成果进行对比,讨论了断层构造复杂程度并对其进行了划分,利用Surfer绘图软件,绘制了断层分维的等值线图。结果显示,平煤七矿断层分维值...
  • 以徐州某煤矿为例,分析了断层的分形维数、落差及倾角等因素与矿井突水点涌水量的相关关系,建立断层信息与涌水量回归模型,通过Arc GIS强大的空间分析功能生成断层对突水影响函数等值线图。与单一依据分形维数的插值...
  • 基于地质动力区划方法,对己15煤层顶板的岩体应力状态进行数值模拟,以应力等值线图的形式展示岩体应力的变化情况,将己15煤层顶板构造应力进行构造应力区的三级划分。分析得出构造应力场对煤与瓦斯突出起控制作用,构造...
  • 采用评价、校正后的174个可用钻孔煤层瓦斯含量点绘制了崤熊构造区主要煤田主采煤层瓦斯含量等值线图,通过分析比较各煤田瓦斯地质特征,总结了区域构造对煤层瓦斯分布的控制规律。崤熊构造区主要煤田主采煤层瓦斯含量...
  • 根据横向和纵向电阻率等值线图分析地质构造的富水性,为矿井突水危险评价提供地质依据。淮南矿区突水地质构造探测结果显示:在探测区内发育两个陷落柱,西北部的陷落柱无水,东部陷落柱富水程度高。实际巷道揭露资料与...
  • 为了更好地了解河南省太行构造区二1煤层瓦斯地质规律,采用评价、校正后得到的190个钻孔煤层瓦斯含量点,绘制了太行构造区主要煤田二1煤层瓦斯含量等值线图,通过分析比较各煤田瓦斯地质特征,总结了区域构造对煤层瓦斯...
  • 采用评价、校正后的246个钻孔煤层瓦斯含量点绘制了嵩箕构造区主要煤田二1煤层瓦斯含量等值线图,通过分析比较各煤田瓦斯地质特征,总结了区域构造对瓦斯分布的控制规律。受后期构造变动破坏盖层的影响,嵩箕构造区煤层...
  • 针对济阳坳陷孔店期构造对沉积盆地的控制作用,结合地震识别及大量的钻井资料,编制了孔店组二段和孔店组一段的沉积体系分布图,以及孔店组沉积厚度等值线图。孔店期济阳坳陷表现为若干分隔断陷盆地,多沉积中心和沉降...
  • 根据良庄井田地质资料,获得了奥灰水压等值线图、15~#煤层断裂构造复杂程度图、15~#煤层底板突水系数等值线图,采用信息融合的方法,获得了15~#煤层底板突水危险性分区图,与已开采煤层的实际情况相符。
  • 通过制作徐州某矿7煤煤厚等值线图及其他分析图件,探讨了7煤煤厚变化规律,分析了聚煤沉积环境、后期构造等煤厚变化影响因素。研究表明该井田沉积环境属于近海湖泊沼泽沉积类型,地壳的不均衡振荡运动和古地理环境的...
  • 进行直流电阻率法超前探测数值模拟,分析了迎头前方存在隐伏构造时视电阻率响应特征,巷道空腔对小极距探测结果影响较大,但不会掩盖地质体异常响应,提出采用三点三极装置并绘制视电阻率等值线图的数据采集处理方式,...
  • 瓦斯含量是瓦斯防治中的一个重要指标,近些年随着地面煤层气井的规模钻进和绳索快速取芯含气量测试技术的成熟,矿井原煤瓦斯含量的实测数据也随之增多,根据这些实测数据,结合地质构造因素绘制瓦斯含量等值线图,同时对...
  • 为了对南堡凹陷东营组...根据南堡地区东营组剥蚀厚度的恢复结果,结合该区沉积、构造等综合分析,作出了东营组剥蚀厚度等值线图。研究发现南堡凹陷东营组剥蚀强度大致可以分为2个区:东北部的强剥蚀区、中部的弱剥蚀区。
  • 应用现代数学非线性理论与方法对西南地区三江北段恒星错测区1:50000水系沉积物测量数据进行了异常识别...在此基础上构造了测区地球化学元素分布的分形插值曲面,做出异常等值线图和异常分形插值图。处理结果令人满意。
  • 采用瓦斯含量直接测定法测定了22518工作面5#煤层的瓦斯含量,绘制了工作面的瓦斯含量等值线图,并结合地质资料分析,得出地质构造是影响22518工作面瓦斯赋存的主控因素,顶底板岩性及煤层埋藏深度对工作面瓦斯赋存有一定...
  • 系统以井田应力状态区域预测为基础,融合井田地质构造图、井田区域应力等值线图、煤与瓦斯突出点分布图及矿井开拓布置图等基础图件,并加入其它文字的、视频的数据,实现矿井生产信息查询和分析智能化、系统化,为该矿煤...
  • 为了解决这一难题,引入两种层析成像方法,通过衰减系数层析成像处理技术,它将成像区域网格化,计算各网格点的衰减系数然后利用ART或SIRT算法进行反演成像,得到形象直观的吸收系数等值线图或色谱图。相位层析成像反演...
  • 通过井田煤田地质勘查成果及煤层含气量分析了主要可采煤层含气性分布及主控因素,并编制了主要可采煤层含气性分布等值线图,对煤层气资源量进行了估算。认为煤层埋藏深度和向斜构造是煤层气分布差异的主因,并获得主要...

空空如也

空空如也

1 2 3
收藏数 55
精华内容 22
关键字:

构造等值线图