大家好,欢迎阅读我的博客。今天我将为大家介绍万盛黑山谷的万盛石林。无论你是自然爱好者还是旅游爱好者,这个地方都将给你带来无尽的惊喜和美妙的体验。
万盛黑山谷坐落在中国的美丽省份四川之中。这里被誉为自然奇观的天堂,以其绝美的景色和久负盛名的万盛石林而闻名于世。无论你是想远离城市的喧嚣和压力,还是体验不同寻常的自然风光,万盛黑山谷都是一个绝佳的选择。
万盛石林是万盛黑山谷最引人注目的景点之一。它位于峡谷之中,由形态各异的巨石组成,形成了一个让人仿佛进入了另一个世界的壮丽景观。每一块巨石都有着独特的形状和故事,让人惊叹不已。
走在石林的小径上,你会感受到与大自然的亲密接触。清新的空气,宁静的环境让你可以完全放松身心,远离喧嚣的尘世。你可以欣赏到大自然的鬼斧神工,体验到与大自然的融合。这里是摄影爱好者的天堂,无论你是想捕捉独特的景色还是展现石林的壮丽美景,都能满足你的需求。
数以千计的巨石在阳光的照射下闪耀着光芒,犹如一颗颗宝石镶嵌在大地上。石林中的植被也十分丰富多样,各种奇特的植物在巨石间若隐若现,为整个景区增添了一抹绿色。在这里漫步,仿佛走进了一个幽静的仙境。
万盛黑山谷的探索之旅绝对是一次难忘的经历。你可以选择徒步探索石林的各个角落,也可以选择乘坐缆车俯瞰整个景区的壮丽景色。无论你选择哪种方式,都能领略到石林所带来的美妙与震撼。
石林中有许多不同的路线和景点可以探索。你可以尝试攀登陡峭的山岩,感受到挑战的乐趣;或者沿着小径漫步,欣赏到更多不同角度的景色。无论你选择哪条路线,都将带给你一场非凡的冒险。
此外,万盛黑山谷还有许多其他的自然景观等待着你的探索。你可以参观壮观的水潭、瀑布和峡谷,感受到大自然的力量和美丽。在这里,你可以尽情沉浸在大自然的怀抱中,与家人朋友共度难忘的时光。
万盛黑山谷的万盛石林是一处自然奇观,给每一位游客留下深刻的印象。这里的壮丽景色和独特的山水胜景将让你流连忘返。无论你是想找个地方放松心情还是探索大自然的奥秘,万盛黑山谷都会是一个完美的选择。
如果你正计划着下一次旅行,并且对大自然充满好奇,那么万盛黑山谷绝对值得一去。在这里,你将会发现一个与众不同的世界,体验到与大自然的亲密接触。记得带上你的相机、舒适的鞋子和好心情,开始一场难忘的旅程吧!
万盛驾校是一家专业的驾驶培训机构,致力于为学员提供高质量的驾驶培训服务。我们拥有一支经验丰富、资质齐全的教练团队,采用先进的教学方法和设备,为每位学员量身定制培训方案,帮助他们快速、安全地掌握驾驶技能。
万盛驾校作为一家领先的驾驶培训机构,有着诸多优势和特点:
为了满足不同学员的需求,万盛驾校提供多种培训课程,包括:
如果您对万盛驾校的驾驶培训课程感兴趣,或有任何疑问和建议,欢迎随时联系我们:
电话:123-456-7890
邮箱:info@wanshengdrivingschool.com
我们期待与您的合作,共同探索驾驶技能的奥秘!
随着建筑和装修行业的不断发展,对于高品质、美观的石材产品的需求也越来越大。作为一家专业的石材公司,万盛石材一直致力于为客户提供优质的石材产品,并在行业内树立了良好的声誉。
万盛石材公司拥有先进的生产设备和技术团队,能够生产各种规格、颜色的石材产品,满足不同客户的需求。产品质量稳定可靠,经久耐用,广受客户好评。
作为一家以客户为中心的石材公司,万盛石材始终秉承着“质量第一、服务至上”的理念,不断提升服务质量,为客户创造更大的价值。
万盛石材将持续努力,不断创新,为客户提供更优质的石材产品和服务,成为行业内的领先品牌,推动行业的发展和进步。
随着人们生活水平的提高,对于建筑装饰材料的要求也越来越高,石材作为一种高档建筑材料,受到越来越多客户的青睐。万盛石材将抓住机遇,不断提升自身实力,赢得更多市场份额。
万盛石材公司将继续加大研发投入,不断提升产品质量和技术含量,推出更多新品,满足客户不断增长的需求,实现公司可持续发展的目标。
万盛石材将一如既往地秉承诚信经营的理念,努力为客户提供更优质的产品和服务,与客户共同发展、共创美好未来。
万盛石林位于中国云南省昆明市石林彝族自治县,是世界上最为壮观的石灰岩地貌之一。它以其独特的地质景观和丰富的生态资源吸引了无数游客和地质爱好者。这个地方不仅让人叹为观止,同时也让人感受到大自然的神奇和力量。
万盛石林拥有数百万年的地质历史,是由石灰石经过长期的风化、水侵蚀和地壳运动形成的。这些石灰岩柱纹理清晰,形状各异,宛如大自然的艺术品。在阳光的照射下,石林的景色更加美不胜收,光影交织中,给人一种奇妙的感觉。
万盛石林的面积非常广阔,其中最有名的景点包括“大观音石”、“一线天”、“猴子王国”等。这些景点都有各自的特色和传说,吸引着来自世界各地的游客前来观光。不仅如此,这里也是彝族文化的发源地,游客可以深入了解彝族的风俗和传统,感受到浓厚的民族风情。
万盛石林的石灰岩地貌给人留下了深刻的印象。在这里,你可以看到形状各异的石柱、石峰、石楼等景观,它们高耸入云,犹如大自然的雕塑。在石林中漫步,除了能欣赏到壮观的景色外,还能感受到宁静和平和。
游览石林时,你可以沿着指定的观景路线或者自由探索这个迷人的地方。每一步都有新的惊喜等着你,每一处都散发着大自然独特的韵味。沐浴在阳光下,与大自然亲密接触,是一种难以言喻的快乐。
如果你是喜欢摄影的爱好者,那么石林将是你的天堂。在这里,你可以尽情地拍摄壮观的石灰岩地貌、奇特的岩石纹理以及栩栩如生的自然景观。无论是日出时分的晨曦,还是傍晚时分的余晖,都能让你拍出令人震撼的照片。
除了自然景观的壮丽,万盛石林还承载着丰富的文化内涵。作为彝族的发源地之一,这里有独特的彝族风情和传统文化。游客可以参观彝族村落,了解他们的居住和生活方式。在彝族的传统节日,游客还可以观看到丰富多彩的传统表演和民俗活动。
此外,在石林附近还有一些著名的景点值得一游。比如距离石林不远的乌龙潭,是一个以美丽的湖泊和清新的空气闻名的旅游胜地。另外,如果你对历史感兴趣,还可以去参观昆明石林博物馆,了解更多关于这片神奇地貌的历史和故事。
对于喜欢户外运动的人来说,万盛石林也是一个理想的目的地。你可以在这里进行徒步、攀岩等活动,体验到大自然的力量和挑战。同时,这里的空气清新,环境优美,也非常适合进行休闲和放松。
如果你计划前往万盛石林旅游,以下是一些建议和旅游指南:
万盛石林以其壮观的石灰岩地貌和丰富的文化内涵,成为云南的一颗明珠。它是探索自然之美、感受大自然的力量的理想之地。无论是对地质爱好者还是文化爱好者来说,石林都值得一游。计划你的旅程,前往万盛石林,一窥它神奇的面貌。
之前看了Mahout官方示例 20news 的调用实现;于是想根据示例的流程实现其他例子。网上看到了一个关于天气适不适合打羽毛球的例子。
训练数据:
Day Outlook Temperature Humidity Wind PlayTennis
D1 Sunny Hot High Weak No
D2 Sunny Hot High Strong No
D3 Overcast Hot High Weak Yes
D4 Rain Mild High Weak Yes
D5 Rain Cool Normal Weak Yes
D6 Rain Cool Normal Strong No
D7 Overcast Cool Normal Strong Yes
D8 Sunny Mild High Weak No
D9 Sunny Cool Normal Weak Yes
D10 Rain Mild Normal Weak Yes
D11 Sunny Mild Normal Strong Yes
D12 Overcast Mild High Strong Yes
D13 Overcast Hot Normal Weak Yes
D14 Rain Mild High Strong No
检测数据:
sunny,hot,high,weak
结果:
Yes=》 0.007039
No=》 0.027418
于是使用Java代码调用Mahout的工具类实现分类。
基本思想:
1. 构造分类数据。
2. 使用Mahout工具类进行训练,得到训练模型。
3。将要检测数据转换成vector数据。
4. 分类器对vector数据进行分类。
接下来贴下我的代码实现=》
1. 构造分类数据:
在hdfs主要创建一个文件夹路径 /zhoujainfeng/playtennis/input 并将分类文件夹 no 和 yes 的数据传到hdfs上面。
数据文件格式,如D1文件内容: Sunny Hot High Weak
2. 使用Mahout工具类进行训练,得到训练模型。
3。将要检测数据转换成vector数据。
4. 分类器对vector数据进行分类。
这三步,代码我就一次全贴出来;主要是两个类 PlayTennis1 和 BayesCheckData = =》
package myTesting.bayes;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.util.ToolRunner;
import org.apache.mahout.classifier.naivebayes.training.TrainNaiveBayesJob;
import org.apache.mahout.text.SequenceFilesFromDirectory;
import org.apache.mahout.vectorizer.SparseVectorsFromSequenceFiles;
public class PlayTennis1 {
private static final String WORK_DIR = "hdfs://192.168.9.72:9000/zhoujianfeng/playtennis";
/*
* 测试代码
*/
public static void main(String[] args) {
//将训练数据转换成 vector数据
makeTrainVector();
//产生训练模型
makeModel(false);
//测试检测数据
BayesCheckData.printResult();
}
public static void makeCheckVector(){
//将测试数据转换成序列化文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"testinput";
String output = WORK_DIR+Path.SEPARATOR+"tennis-test-seq";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean参数是,是否递归删除的意思
fs.delete(out, true);
}
SequenceFilesFromDirectory sffd = new SequenceFilesFromDirectory();
String[] params = new String[]{"-i",input,"-o",output,"-ow"};
ToolRunner.run(sffd, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("文件序列化失败!");
System.exit(1);
}
//将序列化文件转换成向量文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"tennis-test-seq";
String output = WORK_DIR+Path.SEPARATOR+"tennis-test-vectors";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean参数是,是否递归删除的意思
fs.delete(out, true);
}
SparseVectorsFromSequenceFiles svfsf = new SparseVectorsFromSequenceFiles();
String[] params = new String[]{"-i",input,"-o",output,"-lnorm","-nv","-wt","tfidf"};
ToolRunner.run(svfsf, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("序列化文件转换成向量失败!");
System.out.println(2);
}
}
public static void makeTrainVector(){
//将测试数据转换成序列化文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"input";
String output = WORK_DIR+Path.SEPARATOR+"tennis-seq";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean参数是,是否递归删除的意思
fs.delete(out, true);
}
SequenceFilesFromDirectory sffd = new SequenceFilesFromDirectory();
String[] params = new String[]{"-i",input,"-o",output,"-ow"};
ToolRunner.run(sffd, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("文件序列化失败!");
System.exit(1);
}
//将序列化文件转换成向量文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"tennis-seq";
String output = WORK_DIR+Path.SEPARATOR+"tennis-vectors";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean参数是,是否递归删除的意思
fs.delete(out, true);
}
SparseVectorsFromSequenceFiles svfsf = new SparseVectorsFromSequenceFiles();
String[] params = new String[]{"-i",input,"-o",output,"-lnorm","-nv","-wt","tfidf"};
ToolRunner.run(svfsf, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("序列化文件转换成向量失败!");
System.out.println(2);
}
}
public static void makeModel(boolean completelyNB){
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"tennis-vectors"+Path.SEPARATOR+"tfidf-vectors";
String model = WORK_DIR+Path.SEPARATOR+"model";
String labelindex = WORK_DIR+Path.SEPARATOR+"labelindex";
Path in = new Path(input);
Path out = new Path(model);
Path label = new Path(labelindex);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean参数是,是否递归删除的意思
fs.delete(out, true);
}
if(fs.exists(label)){
//boolean参数是,是否递归删除的意思
fs.delete(label, true);
}
TrainNaiveBayesJob tnbj = new TrainNaiveBayesJob();
String[] params =null;
if(completelyNB){
params = new String[]{"-i",input,"-el","-o",model,"-li",labelindex,"-ow","-c"};
}else{
params = new String[]{"-i",input,"-el","-o",model,"-li",labelindex,"-ow"};
}
ToolRunner.run(tnbj, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("生成训练模型失败!");
System.exit(3);
}
}
}
package myTesting.bayes;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.PathFilter;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.mahout.classifier.naivebayes.BayesUtils;
import org.apache.mahout.classifier.naivebayes.NaiveBayesModel;
import org.apache.mahout.classifier.naivebayes.StandardNaiveBayesClassifier;
import org.apache.mahout.common.Pair;
import org.apache.mahout.common.iterator.sequencefile.PathType;
import org.apache.mahout.common.iterator.sequencefile.SequenceFileDirIterable;
import org.apache.mahout.math.RandomAccessSparseVector;
import org.apache.mahout.math.Vector;
import org.apache.mahout.math.Vector.Element;
import org.apache.mahout.vectorizer.TFIDF;
import com.google.common.collect.ConcurrentHashMultiset;
import com.google.common.collect.Multiset;
public class BayesCheckData {
private static StandardNaiveBayesClassifier classifier;
private static Map<String, Integer> dictionary;
private static Map<Integer, Long> documentFrequency;
private static Map<Integer, String> labelIndex;
public void init(Configuration conf){
try {
String modelPath = "/zhoujianfeng/playtennis/model";
String dictionaryPath = "/zhoujianfeng/playtennis/tennis-vectors/dictionary.file-0";
String documentFrequencyPath = "/zhoujianfeng/playtennis/tennis-vectors/df-count";
String labelIndexPath = "/zhoujianfeng/playtennis/labelindex";
dictionary = readDictionnary(conf, new Path(dictionaryPath));
documentFrequency = readDocumentFrequency(conf, new Path(documentFrequencyPath));
labelIndex = BayesUtils.readLabelIndex(conf, new Path(labelIndexPath));
NaiveBayesModel model = NaiveBayesModel.materialize(new Path(modelPath), conf);
classifier = new StandardNaiveBayesClassifier(model);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("检测数据构造成vectors初始化时报错。。。。");
System.exit(4);
}
}
/**
* 加载字典文件,Key: TermValue; Value:TermID
* @param conf
* @param dictionnaryDir
* @return
*/
private static Map<String, Integer> readDictionnary(Configuration conf, Path dictionnaryDir) {
Map<String, Integer> dictionnary = new HashMap<String, Integer>();
PathFilter filter = new PathFilter() {
@Override
public boolean accept(Path path) {
String name = path.getName();
return name.startsWith("dictionary.file");
}
};
for (Pair<Text, IntWritable> pair : new SequenceFileDirIterable<Text, IntWritable>(dictionnaryDir, PathType.LIST, filter, conf)) {
dictionnary.put(pair.getFirst().toString(), pair.getSecond().get());
}
return dictionnary;
}
/**
* 加载df-count目录下TermDoc频率文件,Key: TermID; Value:DocFreq
* @param conf
* @param dictionnaryDir
* @return
*/
private static Map<Integer, Long> readDocumentFrequency(Configuration conf, Path documentFrequencyDir) {
Map<Integer, Long> documentFrequency = new HashMap<Integer, Long>();
PathFilter filter = new PathFilter() {
@Override
public boolean accept(Path path) {
return path.getName().startsWith("part-r");
}
};
for (Pair<IntWritable, LongWritable> pair : new SequenceFileDirIterable<IntWritable, LongWritable>(documentFrequencyDir, PathType.LIST, filter, conf)) {
documentFrequency.put(pair.getFirst().get(), pair.getSecond().get());
}
return documentFrequency;
}
public static String getCheckResult(){
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String classify = "NaN";
BayesCheckData cdv = new BayesCheckData();
cdv.init(conf);
System.out.println("init done...............");
Vector vector = new RandomAccessSparseVector(10000);
TFIDF tfidf = new TFIDF();
//sunny,hot,high,weak
Multiset<String> words = ConcurrentHashMultiset.create();
words.add("sunny",1);
words.add("hot",1);
words.add("high",1);
words.add("weak",1);
int documentCount = documentFrequency.get(-1).intValue(); // key=-1时表示总文档数
for (Multiset.Entry<String> entry : words.entrySet()) {
String word = entry.getElement();
int count = entry.getCount();
Integer wordId = dictionary.get(word); // 需要从dictionary.file-0文件(tf-vector)下得到wordID,
if (StringUtils.isEmpty(wordId.toString())){
continue;
}
if (documentFrequency.get(wordId) == null){
continue;
}
Long freq = documentFrequency.get(wordId);
double tfIdfValue = tfidf.calculate(count, freq.intValue(), 1, documentCount);
vector.setQuick(wordId, tfIdfValue);
}
// 利用贝叶斯算法开始分类,并提取得分最好的分类label
Vector resultVector = classifier.classifyFull(vector);
double bestScore = -Double.MAX_VALUE;
int bestCategoryId = -1;
for(Element element: resultVector.all()) {
int categoryId = element.index();
double score = element.get();
System.out.println("categoryId:"+categoryId+" score:"+score);
if (score > bestScore) {
bestScore = score;
bestCategoryId = categoryId;
}
}
classify = labelIndex.get(bestCategoryId)+"(categoryId="+bestCategoryId+")";
return classify;
}
public static void printResult(){
System.out.println("检测所属类别是:"+getCheckResult());
}
}
1. 请介绍一下WebGIS的概念和作用,以及在实际应用中的优势和挑战。
WebGIS是一种基于Web技术的地理信息系统,通过将地理数据和功能以可视化的方式呈现在Web浏览器中,实现地理空间数据的共享和分析。它可以用于地图浏览、空间查询、地理分析等多种应用场景。WebGIS的优势包括易于访问、跨平台、实时更新、可定制性强等,但也面临着数据安全性、性能优化、用户体验等挑战。
2. 请谈谈您在WebGIS开发方面的经验和技能。
我在WebGIS开发方面有丰富的经验和技能。我熟悉常用的WebGIS开发框架和工具,如ArcGIS API for JavaScript、Leaflet、OpenLayers等。我能够使用HTML、CSS和JavaScript等前端技术进行地图展示和交互设计,并能够使用后端技术如Python、Java等进行地理数据处理和分析。我还具备数据库管理和地理空间数据建模的能力,能够设计和优化WebGIS系统的架构。
3. 请描述一下您在以往项目中使用WebGIS解决的具体问题和取得的成果。
在以往的项目中,我使用WebGIS解决了许多具体问题并取得了显著的成果。例如,在一次城市规划项目中,我开发了一个基于WebGIS的交通流量分析系统,帮助规划师们评估不同交通方案的效果。另外,在一次环境监测项目中,我使用WebGIS技术实现了实时的空气质量监测和预警系统,提供了准确的空气质量数据和可视化的分析结果,帮助政府和公众做出相应的决策。
4. 请谈谈您对WebGIS未来发展的看法和期望。
我认为WebGIS在未来会继续发展壮大。随着云计算、大数据和人工智能等技术的不断进步,WebGIS将能够处理更大规模的地理数据、提供更丰富的地理分析功能,并与其他领域的技术进行深度融合。我期望未来的WebGIS能够更加智能化、个性化,为用户提供更好的地理信息服务,助力各行各业的决策和发展。
这块您需要了解下stm32等单片机的基本编程和简单的硬件设计,最好能够了解模电和数电相关的知识更好,还有能够会做操作系统,简单的有ucos,freeRTOS等等。最好能够使用PCB画图软件以及keil4等软件。希望对您能够有用。
万盛不是词语,因为万盛组合到一起能表达什么意思呢,万盛总觉得缺少了点什么,数词万与茂盛的盛组合无法解释,但如果是外国单词译音,也只适合于一些特定场合,比如说商标品牌等,不知我解释的是否清楚,对你有无帮助,但愿对你有所帮助。
1.负责区域大客户/行业客户管理系统销售拓展工作,并完成销售流程;
2.维护关键客户关系,与客户决策者保持良好的沟通;
3.管理并带领团队完成完成年度销售任务。
你好,面试题类型有很多,以下是一些常见的类型:
1. 技术面试题:考察候选人技术能力和经验。
2. 行为面试题:考察候选人在过去的工作或生活中的行为表现,以预测其未来的表现。
3. 情境面试题:考察候选人在未知情境下的决策能力和解决问题的能力。
4. 案例面试题:考察候选人解决实际问题的能力,模拟真实工作场景。
5. 逻辑推理题:考察候选人的逻辑思维能力和分析能力。
6. 开放性面试题:考察候选人的个性、价值观以及沟通能力。
7. 挑战性面试题:考察候选人的应变能力和创造力,通常是一些非常具有挑战性的问题。